Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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 - Fatal编程技术网

Python 正则表达式与群的交集

Python 正则表达式与群的交集,python,regex,Python,Regex,我需要使用regexps实现一个替换,仅当点不在两位数之间时,才在点后添加空格 a.a -> a. a 7.7 -> 7.7 为了实现它,我有几个规则,下面是其中之一: text = (re.compile(u'(\D)(\.)(\D)')).sub('\\1\\2 \\3', text) 我希望在非数字符号之间的点后添加空格,但用于输入 a.b.c.d.e 结果是 a. b.c. d.e 因此,某些符号之间没有空格。看起来“a.b”首先匹配,之后“b”不作为“b.c.d”的

我需要使用regexps实现一个替换,仅当点不在两位数之间时,才在点后添加空格

a.a -> a. a
7.7 -> 7.7
为了实现它,我有几个规则,下面是其中之一:

text = (re.compile(u'(\D)(\.)(\D)')).sub('\\1\\2 \\3', text)
我希望在非数字符号之间的点后添加空格,但用于输入

a.b.c.d.e
结果是

a. b.c. d.e
因此,某些符号之间没有空格。看起来“a.b”首先匹配,之后“b”不作为“b.c.d”的一部分处理。有可能纠正这种行为吗


谢谢

您的正则表达式与重叠字符串不匹配。可以使用基本正则表达式使其与重叠字符串匹配:

>>> regex = re.compile(u'(?<=\D)(\.)(?=\D)')
>>> 
>>> regex.sub(r'\1 ', "a.b.c.d.e")
'a. b. c. d. e'

>regex=re.compile(u'(?您可以使用lookahead/lookahead断言对
hello world应该发生什么。
?您具体指的是一个句点,还是两个非数字字符之间的句点?但有一个问题。如果您只想排除
数字点位
,那么您的正则表达式将与
数字点位
非数字点位不匹配de>。我确信如果你包括所有规则,你会得到一个更好的正则表达式解决方案。我不明白,OP字面上说这是预期结果
a.b.c.d.e
,而不是这个
a.b.c.d.e
@Shafizadeh,这是他们不想要的输出,也就是他们目前得到的。@padraiccnningham哦..我看到了.Thx。