为什么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下面的任何答案都能解决您的问题吗?