Python 使用正则表达式查找逗号字符串中的所有字符
我要搜索以下字符串中的所有“2”:Python 使用正则表达式查找逗号字符串中的所有字符,python,regex,rubular,Python,Regex,Rubular,我要搜索以下字符串中的所有“2”: 2, 10,11,1,1, 22,1,12,1,1, 1,2 , 2 ,2 我给出了正则表达式: (^\s*(2)\s*)|(\s*,\s*(2)\s*(,|$)) 但它不会搜索,只会搜索一个2 我现在将正则表达式更改为 (^\s*(2)\s*)|(\s*,\s*(2)\s*) 但现在需要22个2中的一个 如何更改正则表达式,以便找到所有2(22或12个不应被考虑)?希望这就是您所寻找的 [^\d]2[^\d] python代码必须类似于
2, 10,11,1,1, 22,1,12,1,1, 1,2 , 2 ,2
我给出了正则表达式:
(^\s*(2)\s*)|(\s*,\s*(2)\s*(,|$))
但它不会搜索,只会搜索一个2
我现在将正则表达式更改为
(^\s*(2)\s*)|(\s*,\s*(2)\s*)
但现在需要22个2中的一个
如何更改正则表达式,以便找到所有2(22或12个不应被考虑)?希望这就是您所寻找的
[^\d]2[^\d]
python代码必须类似于
p = re.compile(ur'[^\d]2[^\d]', re.MULTILINE)
使用负向后看和负向前看
(?<!\d)2(?!\d)
(?
>>重新导入
>>>s=“2,10,11,1,1,22,1,12,1,1,1,1,2,2”
>>>关于findall(r’(?这将匹配输入字符串中的所有独立2
:
(?<!\d)2(?!\d)
请注意,上面的(两个)regex并不关心输入的格式。它只是简单地提取任何独立的2,即使在:
2 plain text, 2,43_2,lkjsf
^ ^ ^
如果要将列与值2
匹配,并忽略2 2
或abc 2
中的2
:
(?:^|,) *(2) *(?=,|$)
它将仅与本示例文本中的2
匹配:
2 plain text, 2 ,2, 43_2, 2 2,2 ,234,2
^ ^ ^ ^
这无法在字符串的开头或结尾捕获2
。如果I“2,2,2”在同一个正则表达式中,如何忽略中间有空格的2expression@SHRI:您的新要求将使此处的所有答案无效,因此它属于一个新问题。未详细说明所有细节是您的错。我没有详细说明,因为这是一个“很高兴拥有”的要求。这就是为什么我仍然接受您的答案。请提供这没那么复杂,谢谢你
(?:^|,) *(2) *(?=,|$)
2 plain text, 2 ,2, 43_2, 2 2,2 ,234,2
^ ^ ^ ^