Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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 - Fatal编程技术网

为什么python正则表达式搜索在+;做

为什么python正则表达式搜索在+;做,python,regex,Python,Regex,只是想知道为什么在这个例子中使用星号不能检测到数字 example = "something_119086" re.search('\d*', example).group() '' 它适用于字符串开头的数字,但“搜索”应该扫描整个字符串,以查找0个或多个出现 但是,使用+而不是*可以工作,它会搜索1个或多个出现的字符。星号搜索0个或多个出现的字符(-set)。它在字符s中查找0个匹配项,而作为re.search只报告一个匹配项。您可以通过键入以下内容来查看: re.findall(r'\d*

只是想知道为什么在这个例子中使用星号不能检测到数字

example = "something_119086"
re.search('\d*', example).group()
''
它适用于字符串开头的数字,但“搜索”应该扫描整个字符串,以查找0个或多个出现


但是,使用+而不是*可以工作,它会搜索1个或多个出现的字符。

星号搜索0个或多个出现的字符(-set)。它在字符
s
中查找0个匹配项,而作为
re.search
只报告一个匹配项。您可以通过键入以下内容来查看:

re.findall(r'\d*', example)                                                                                                                                                                                                           
Out[8]: ['', '', '', '', '', '', '', '', '', '', '119086', '']
因此,是的,星号可以检测数字(
\d*
),也可以检测其他一切

编辑:记住对正则表达式使用原始字符串(前缀为
r
),以防止不受欢迎的意外事件发生:

在字符串中扫描,查找正则表达式所在的第一个位置 表达式模式生成匹配项,并返回相应的匹配项 反对


星号表示0或更多。它成功地匹配了字符串开头的零个数字,并返回该数字。

哦,是的,你肯定是对的;updateDid下面的任何答案都能解决您的问题吗?