2024-06-08 11:25:48 发布
网友
试图对问题使用不同的标题,但如果您可以改进问题,请这样做。
这是我的regexp:f\(\s*([^,]+)\s*,\s*([^,]+)\s*\)
f\(\s*([^,]+)\s*,\s*([^,]+)\s*\)
我得一行一行地把这个应用到一个文件上。一行行一行地读取文件和循环就可以了。但是如何将regexp应用于行呢?
谢谢你的帮助,也很抱歉没有问题。
import re with open('file.txt') as f: for line in f: match = re.search('f\(\s*([^,]+)\s*,\s*([^,]+)\s*\)', line)
注意,Python会自动编译和缓存regex,因此在这种情况下不需要单独的编译步骤。
你可以试试这样的方法:
import re regex = re.compile("f\(\s*([^,]+)\s*,\s*([^,]+)\s*\)") with open("my_file.txt") as f: for line in f: result = regex.search(line)
下面的表达式返回一个列表;该列表的每个条目都包含相应行中regexp的所有匹配项。
>>> import re >>> [re.findall(r'f\(\s*([^,]+)\s*,\s*([^,]+)\s*\)',line) for line in open('file.txt')]
注意,Python会自动编译和缓存regex,因此在这种情况下不需要单独的编译步骤。
你可以试试这样的方法:
下面的表达式返回一个列表;该列表的每个条目都包含相应行中regexp的所有匹配项。
相关问题 更多 >
编程相关推荐