lzb1001 发表于 2022-5-20 23:51:41

为何一个可以返回,另一个返回错误?看得眼都花了,还找不出代码有何不同……

WIN10/PYTHON3.7.6

---以下代码1----

import re

charref = re.compile(r'''# r + '字符串' = 原始字符串
&\#                     # 开始数字引用
(
    0+                # 八进制格式
    |+                # 十进制格式
    |x+         # 十六进制格式
)
;                        # 分号结尾
''', re.X)

t1 = charref.match(' ')
print(t1)

t2 = charref.match('
')
print(t2)

t3 = charref.match('
')
print(t3)

运行后返回如下:

<re.Match object; span=(0, 6), match=' '>
<re.Match object; span=(0, 5), match='&#10;'>
<re.Match object; span=(0, 5), match='&#xA;'>


----以下代码2-------

import re

charref = re.compile(r'''  # r + '字符串' = 原始字符串
&\#                       # 开始数字引用#前应加上反斜杠\
(
    0+                # 八进制格式
    |+                # 十进制格式
    |x+         # 十六进制格式
)
;                          # 分号结尾
''', re.X)

t1 = charref.match(' ')
print(t1)

t2 = charref.match('&#10;')
print(t2)

t3 = charref.match('&#xA;')
print(t3)

运行后返回如下:

Traceback (most recent call last):
File "D:\work\12345.py", line 11, in <module>
    ''', re.X)
File "C:\Users\dell\AppData\Local\Programs\Python\Python37\lib\re.py", line 234, in compile
    return _compile(pattern, flags)
File "C:\Users\dell\AppData\Local\Programs\Python\Python37\lib\re.py", line 286, in _compile
    p = sre_compile.compile(pattern, flags)
File "C:\Users\dell\AppData\Local\Programs\Python\Python37\lib\sre_compile.py", line 764, in compile
    p = sre_parse.parse(p, flags)
File "C:\Users\dell\AppData\Local\Programs\Python\Python37\lib\sre_parse.py", line 938, in parse
    raise source.error("unbalanced parenthesis")
re.error: unbalanced parenthesis at position 176 (line 7, column 1)


【我的问题】

两个代码没看出什么不同?为何返回结果不同?

请大家一起帮忙看看,谢谢!

lzb1001 发表于 2022-5-20 23:54:05

本帖最后由 lzb1001 于 2022-5-21 00:02 编辑

刚发现怎么代码2复制黏贴过来多了那么多空格?奇了怪了……


import re

charref = re.compile(r'''# r + '字符串' = 原始字符串
&\#                     # 开始数字引用,#前应加上反斜杠转义
(
    0+                # 八进制格式
    |+                # 十进制格式
    |x+         # 十六进制格式
)
;                        # 分号结尾
''', re.X)

t1 = charref.match(' ')
print(t1)

t2 = charref.match('&#10;')
print(t2)

t3 = charref.match('&#xA;')
print(t3)

wp231957 发表于 2022-5-21 06:10:25

lzb1001 发表于 2022-5-20 23:54
刚发现怎么代码2复制黏贴过来多了那么多空格?奇了怪了……




使用代码框发代码吧,看不了啊,迷魂

lzb1001 发表于 2022-5-21 10:59:10

wp231957 发表于 2022-5-21 06:10
使用代码框发代码吧,看不了啊,迷魂

找到原因了,应该就是复制的时候不知道为什么多了很多空格导致
页: [1]
查看完整版本: 为何一个可以返回,另一个返回错误?看得眼都花了,还找不出代码有何不同……