我需要使用正则表达式来实现替换,以在点之后添加空格,只要它不在两位数之间。正则表达式和组的交集
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'的一部分。有没有可能解决这个问题?
谢谢!
可以使用前瞻/向后断言 –
应该发生什么'你好world.'?你的意思是指任何时间段或非特定数字字符之间的时间段? –
虽然有一个问题。如果你只想排除'digit-dot-digit',那么你的regex将不会匹配'digit-dot-notdigit'或'notdigit-dot-digit'。 – sln