Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 查找所有长度模式的正则表达式函数?_Python_Regex_Python 3.x_String_Regex Greedy - Fatal编程技术网

Python 查找所有长度模式的正则表达式函数?

Python 查找所有长度模式的正则表达式函数?,python,regex,python-3.x,string,regex-greedy,Python,Regex,Python 3.x,String,Regex Greedy,如何生成一个正则表达式,以匹配单个字符作为一个组以及重复序列 这是我发现的(不是我自己做的): 正则表达式是 ((?P<X>\S.*?)(?:, (?P=X))+) 我希望它能够在字符串末尾获得单个组的组“X”。现在它只返回1,2,3,1,2,3,1,2,3和2,5,2,5作为完全匹配,但我希望它返回1和完全匹配。如何进行此操作?您可以使用来匹配原始模式,也可以使用否定字符类来匹配除空格字符、[、]或逗号之外的任何字符 ((?P<X>\S.*?)(?:, (?P=X))

如何生成一个正则表达式,以匹配单个字符作为一个组以及重复序列

这是我发现的(不是我自己做的):

正则表达式是

((?P<X>\S.*?)(?:, (?P=X))+)
我希望它能够在字符串末尾获得单个组的
组“X”
。现在它只返回
1,2,3,1,2,3,1,2,3
2,5,2,5
作为完全匹配,但我希望它返回
1
和完全匹配。如何进行此操作?

您可以使用来匹配原始模式,也可以使用否定字符类来匹配除空格字符、
[
]
或逗号之外的任何字符

((?P<X>\S.*?)(?:, (?P=X))+|[^\s,[\]])
((?P\S.*)(:,(?P=X))+|[^\S,[\]]

关于数字的
((?p\S.*)(:,(?p=X))+)|(\d+(?=,|])
怎么样?使用([0-9]+)(,[0-9]+)*第一组是必备的第一个元素。第二组匹配0或更多(逗号、空格、数字)您的意思是这样的吗<代码>((?P\S.*)(:,(?P=X))+|[^\S,[\]])我认为您只能像其他人编写的那样使用替代方法来实现这一点。由于正则表达式希望尽可能多地匹配,所以即使使用所有格动词或控制动词也不会给你想要的结果。谢谢你的回答,效果很好。然而,我想知道是否有一种方法可以做到这一点,它将
36,21,1
读为三个项目/值,因此36是一个值,21是一个值,依此类推。因此
group1=36
@DenFulaAnkungen您可以将字符类重复1次或更多次
((?P<X>\S.*?)(?:, (?P=X))+|[^\s,[\]])