Python正则表达式创建

Python正则表达式创建,python,regex,Python,Regex,我尝试运行以下代码: lin = ',11' pat = ',([11|01])$' re.search(pat, lin) 因为pat有',11',lin也有',11',我应该通过重新搜索得到一个返回的对象 但在这种情况下,它不会返回任何结果 谁能帮帮我吗?我很困惑。[11 | 01]不是11或01,它实际上是1或|或0 尝试使用以下方法: ,[10]1$ 这将是一个逗号,然后是[1或0],然后是1,然后是字符串末尾的锚点 你也可以用这个: ,((11)|(01))$ [11 | 01]

我尝试运行以下代码:

lin = ',11'
pat = ',([11|01])$'
re.search(pat, lin)
因为pat有',11',lin也有',11',我应该通过重新搜索得到一个返回的对象

但在这种情况下,它不会返回任何结果


谁能帮帮我吗?我很困惑。

[11 | 01]
不是
11或01
,它实际上是
1或|或0

尝试使用以下方法:

,[10]1$
这将是一个逗号,然后是
[1或0]
,然后是
1
,然后是字符串末尾的锚点

你也可以用这个:

,((11)|(01))$

[11 | 01]
不是
11或01
,它实际上是
1或|或0

尝试使用以下方法:

,[10]1$
这将是一个逗号,然后是
[1或0]
,然后是
1
,然后是字符串末尾的锚点

你也可以用这个:

,((11)|(01))$

您正在使用字符类:
[…]
。它们充当集合;您在其中命名的任何字符都将匹配。您的字符类将匹配任何
1
|
0
字符,即您在类中命名的3个唯一字符。您没有在
[…]
字符类之后指定乘法器,因此它只匹配一个字符:

>>> re.match(',([11|01])$', ',1')
<_sre.SRE_Match object at 0x1106d1648>
>>> re.match(',([11|01])$', ',0')
<_sre.SRE_Match object at 0x1106d16c0>
>>> re.match(',([11|01])$', ',|')
<_sre.SRE_Match object at 0x1106d1648>
它与文本字符
11
01
匹配:

>>> re.match(',(11|01)$', ',11')
<_sre.SRE_Match object at 0x1106d16c0>
>>> re.match(',(11|01)$', ',01')
<_sre.SRE_Match object at 0x1106d1648>
现在,将
|
或运算符分组不再需要括号,因此您可以删除这些括号以简化操作:

pat = ',[01]1$'
演示:

重新匹配(',[01]1$',',01') >>>关于匹配(',[01]1$',',11') >>>重新匹配(“,[01]1$”,“,00”)为无 符合事实的 >>>关于匹配(“,[01]1$”,“,10”)为无 符合事实的 >>>re.match(“,[01]1$”,“,|”)为无 符合事实的
您正在使用字符类:
[…]
。它们充当集合;您在其中命名的任何字符都将匹配。您的字符类将匹配任何
1
|
0
字符,即您在类中命名的3个唯一字符。您没有在
[…]
字符类之后指定乘法器,因此它只匹配一个字符:

>>> re.match(',([11|01])$', ',1')
<_sre.SRE_Match object at 0x1106d1648>
>>> re.match(',([11|01])$', ',0')
<_sre.SRE_Match object at 0x1106d16c0>
>>> re.match(',([11|01])$', ',|')
<_sre.SRE_Match object at 0x1106d1648>
它与文本字符
11
01
匹配:

>>> re.match(',(11|01)$', ',11')
<_sre.SRE_Match object at 0x1106d16c0>
>>> re.match(',(11|01)$', ',01')
<_sre.SRE_Match object at 0x1106d1648>
现在,将
|
或运算符分组不再需要括号,因此您可以删除这些括号以简化操作:

pat = ',[01]1$'
演示:

重新匹配(',[01]1$',',01') >>>关于匹配(',[01]1$',',11') >>>重新匹配(“,[01]1$”,“,00”)为无 符合事实的 >>>关于匹配(“,[01]1$”,“,10”)为无 符合事实的 >>>re.match(“,[01]1$”,“,|”)为无 符合事实的
由于
[…]
括号,正则表达式匹配一个字符,可能是
0
1


我认为您需要更像
,(11 | 01)$

由于
[…]
括号,正则表达式匹配一个字符,可能是
0
1

我想你想要的是更像
,(11 | 01)$

这样:

re.search(r',(11|01)',lin)
这项工作:

re.search(r',(11|01)',lin)