为什么模式匹配在Python中返回这个结果?
这是我读到的代码 我知道为什么模式匹配在Python中返回这个结果?,python,regex,pattern-matching,Python,Regex,Pattern Matching,这是我读到的代码 我知道\d\s*\d\s*\d将匹配1 2 3,但我不知道为什么\d\s*\d和\d\s*\d也可以分别匹配12 3和123 有人能帮我吗 谢谢。s后面的“*”将匹配零到多个空格字符s后面的“*”将匹配零到多个空格字符s后面的“*”将匹配零到多个空格字符s后面的“*”将匹配零到多个空格字符一般来说,\d\s*\d\s*\d*\s*\d”表示“一个数字后跟任意数量的空格,后跟一个数字后跟任意数量的空格,后跟一个数字” 由于0是“任意”数字,您的正则表达式匹配12 3和123没有问
\d\s*\d\s*\d
将匹配1 2 3,但我不知道为什么\d\s*\d
和\d\s*\d
也可以分别匹配12 3和123
有人能帮我吗
谢谢。s后面的“*”将匹配零到多个空格字符s后面的“*”将匹配零到多个空格字符s后面的“*”将匹配零到多个空格字符s后面的“*”将匹配零到多个空格字符一般来说,\d\s*\d\s*\d*\s*\d”表示“一个数字后跟任意数量的空格,后跟一个数字后跟任意数量的空格,后跟一个数字”
由于0是“任意”数字,您的正则表达式匹配12 3和123没有问题。如果您希望正则表达式thqt匹配1 2 3而不是12 3或123,请尝试“\d\s+\d\s+\d”。一般来说,“\d\s*\d\s*\d”表示“一个数字后跟任意数量的空格,后跟一个数字后跟任意数量的空格,后跟一个数字”
由于0是“任意”数字,您的正则表达式匹配12 3和123没有问题。如果您希望正则表达式thqt匹配1 2 3而不是12 3或123,请尝试“\d\s+\d\s+\d”。一般来说,“\d\s*\d\s*\d”表示“一个数字后跟任意数量的空格,后跟一个数字后跟任意数量的空格,后跟一个数字”
由于0是“任意”数字,您的正则表达式匹配12 3和123没有问题。如果您希望正则表达式thqt匹配1 2 3而不是12 3或123,请尝试“\d\s+\d\s+\d”。一般来说,“\d\s*\d\s*\d”表示“一个数字后跟任意数量的空格,后跟一个数字后跟任意数量的空格,后跟一个数字” 由于0是“任意”数字,您的正则表达式与12 3和123匹配没有问题。如果您希望正则表达式thqt与1 2 3匹配,而不是12 3或123,请尝试“\d\s+\d\s+\d”
match = re.search(r'\d\s*\d\s*\d', 'xx1 2 3xx') => found, match.group() == "1 2 3"
match = re.search(r'\d\s*\d\s*\d', 'xx12 3xx') => found, match.group() == "12 3"
match = re.search(r'\d\s*\d\s*\d', 'xx123xx') => found, match.group() == "123"