我希望正则表达式搜索在到达“”时结束,但当它到达“.”时就不会了;我知道使用[^...]
来排除单个字符,并且在它到达某个字符时一直使用它来停止搜索。不过,这对字符串不起作用,因为[^. ]
到达任一字符时就会停止。说我有密码
import re
def main():
my_string = "The value of the float is 2.5. The int's value is 2.\n"
re.search("[^.]*", my_string)
main()
它给出了一个匹配对象和字符串
"The value of the float is 2"
我怎样才能更改它,使它只在字符串“.”之后停止?你知道吗
另外一个问题,有没有办法告诉正则表达式在到达多个字符串中的一个时停止?以上面的代码为例,如果我希望搜索在找到字符串“”时结束或者字符串“\n”,我该怎么办?谢谢!你知道吗
除了Wiktor解释的经典方法外,在这种情况下,分裂也是一个有趣的解决方案。你知道吗
如果你想在句末加句号,你可以这样做:
要处理句子之间的多个空格:
要从字符串的开头到
.
后跟空格进行匹配,请使用如果只需要在点后面加空格或换行符,请使用其中一个(如果只有单个字符,则最好使用第二个;如果有多个字符,则使用交替)
参见regex demo。你知道吗
细节
^
-字符串的开头(.*?)
-捕获组1:除linebreak字符以外的任何0+字符,尽可能少\.
-文字.
字符\s
-一个空白字符(?: |\n)
/[ \n]
-匹配空格或(|
)换行符的非捕获组。你知道吗Python demo:
注意如果输入中可能有换行符,则传递
re.S
或re.DOTALL
标志:相关问题 更多 >
编程相关推荐