Python RegEx ^(.+?(\d*)) *$
中的空格是什么意思?
pat = re.compile('^(。+?(\ d *))* $',re.M)
*
是\s*
是什么意思?
可以忽略空白吗?即^(.+?(\d*)) *$
与^(.+?(\d*))*$
相同?
我举了一些例子,似乎上述两个问题的答案都没有。
谢谢!
答案 0 :(得分:3)
*
表示0或更多次出现,$
将匹配锚定到行尾,因此它允许(可能)尾随空格,但不允许使用制表符,除非它实际上是制表符。
否,如果删除该空格,则后面带有不可见空格的行将不匹配。
现在它匹配一个或多个非数字的行序列,后跟可选数字和可选空格。
实际上如果调试我必须查找像“12345”那样的非贪婪匹配的行,因为我倾向于写自己像“^(\ D +(\ d +))\ s * $“或”^(\ D *。(\ d +))\ s * $“取决于意图。在过去,你不得不对自己的贪婪匹配进行编码,这意味着我通常会通过习惯避免像。+(\ d *)这样的东西。捕获0位通常是一个错误,因为。+
消耗了第一个数字答案 1 :(得分:2)
您可以使用在线正则表达式工具(例如http://www.regex101.com
)自行测试这只是一个空间角色。
对于您的信息,\s
实际上是'空白',因此它匹配标签,表单Feed和其他字符以及空格Whitespace link