我刚开始研究正则表达式,并想知道以下内容之间的区别:
def test():
string = "He was 75 in the 1985sdfdhs 45"
y = re.findall('[0-9]+', string)
print(y)
test()
Run Code Online (Sandbox Code Playgroud)
还有这个
def test2():
string = "He was 75 in the 1985sdfdhs 45"
y = re.findall('[0-9.]+', string)
print(y)
test2()
Run Code Online (Sandbox Code Playgroud)
据我所知,"." 匹配任何字符,所以我认为test2的输出将等于['75','1985sdfdhs','45'],相反它们都是['75','1985','45'].只想弄清楚这里发生了什么.谢谢.
当括号内[和],该点被认为是其本身的字符.所以第二个正则表达式将匹配0-9以及小数点.括号表示一个字符集,它将匹配集合中的一个字符(这就是为什么它.被认为是一个字符而不是一个说明符).
编辑:作为补充说明,当您了解RegEx时,我建议您使用https://regex101.com/,它将为您分解RegEx的每个部分.