Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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_Pattern Matching - Fatal编程技术网

为什么模式匹配在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"