python - 如何正确构建正则表达式?
问题描述
我无法弄清楚问题是什么以及为什么我的常规不起作用。
with open('output.csv', 'w') as outFile:
for line in fileone:
if re.match(r'\"C:\\Program Files \(x86\)\\Google\\Chrome\\Application\\chrome\.exe\" --type',line):
pass
else:
if line not in filetwo:
outFile.write(line)
上面的代码应该匹配下面的所有行并传递它:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --type
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --type
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --type
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --type
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --type
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --type
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --type
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --type
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --type
解决方案
您的用例不需要正则表达式,因为您有一个通用字符串。相反,您可以使用str.startwith()
来匹配您的字符串是否以任何特定字符串开头。例如:
>>> "my string".startswith("my")
True
>>> "my string".startswith("string")
False
因此,您的代码将变为:
with open('output.csv', 'w') as outFile:
for line in fileone:
# vvvvvvvvv updated here
if line.startswith('"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --type'):
pass
else:
if line not in filetwo:
outFile.write(line)
或者可以更简化为:
my_string = '"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --type'
with open('output.csv', 'w') as outFile:
for line in fileone:
if not line.startswith(my_string) and line not in filetwo:
outFile.write(line)
推荐阅读
- c - “函数调用的结果被忽略”:CodeWarrior。为什么会被忽略?
- javascript - 随时间删除消息
- c++ - 从 .txt 文件中整理出 int 变量(fstream、c++)
- mysql - 获取好友列表 n 深度
- ruby-on-rails - Rails 包含参数
- npm - 为什么要使用项目脚本而不是 cli 全局脚本?
- python - Django Apscheduler:从作业存储“默认”获取到期作业时出错:连接已关闭
- r - 通过引用 R 中的行号跨行汇总
- kotlin - Kotlin Generics - 是否可以获得任何类型的元素的整数位置,如序数方法对枚举定义的类所做的那样?
- javascript - antd table pagination bug