首页 > 解决方案 > 正则表达式数组 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)

我错过了什么?提前致谢

标签: pythonpython-3.xregex

解决方案


我认为你的模式\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']

推荐阅读