python - 正则表达式数组 python
问题描述
我知道有很多关于正则表达式的信息,但我无法以某种方式弄清楚。
我有一个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
您只需替换\d.\d\d\d
为^[\s\S]+\d.\d\d\d
.
详情:
^
: 字符串的开始[\s\S]+
: 匹配任何字符,包括换行符。
我还尝试了在 python 上的测试结果。
import re
array1 = ['\n 1.979 \n, \n 1.799 \n']
regex = re.compile(r'^[\s\S]+\d.\d\d\d')
filteredarray= [i for i in array1 if regex.match(i)]
print(filteredarray)
结果。
['\n 1.979 \n, \n 1.799 \n']
推荐阅读
- python - 如何在python的while循环中只打印一次
- python - Flask security @roles_accepted from path name
- html - 文件中存在的 Ionic 5 图像在 CSS 背景或 img 标签 src 中使用时未显示
- powershell - 使所有 PowerShell 脚本变量显式键入
- php - woocommerce 特色产品类别列表的 wp_query 是否多次显示类别?
- javascript - 将科学记数法转换为纳或微秒格式
- python - 颜色填充两条曲线之间的区域 - Python
- c - 蓝牙C编译
- qthread - 从另一个类向主类发出信号
- html - 当三种替代颜色重复到列表中时,如何在列表中添加:nth-child()?