我知道有很多关于regex的信息,但我不知怎么搞不懂
我有一个array1 = ['\n 1.979 \n, \n 1.799 \n']
看起来像这样,但数字不同,但总是以这种格式,所以regex = re.compile(r'\d.\d\d\d')
在记事本++中非常匹配,但在python中似乎不起作用
import re
regex = re.compile(r'\d.\d\d\d')
filteredarray= [i for i in array1 if regex.match(i)]
print(filteredarray)
我错过了什么? 提前谢谢
我认为你的模式
\d.\d\d\d
不是在\n 1.979 \n, \n 1.799 \n
的start处。您只需将\d.\d\d\d
替换为^[\s\S]+\d.\d\d\d
详细信息:
^
:字符串的开头[\s\S]+
:匹配任何字符,包括换行符李>我还尝试了python上的测试结果
结果
您可以使用
re.findall(expression, string)
查找所需的值并将其转换为列表您的需求的正确正则表达式是
\d\.?\d{3}
,或者您也可以使用\d\.\d\d\d
相关问题 更多 >
编程相关推荐