我有正则表达式和Python的问题。我写了一个简单的工具,它将搜索文本文档以查找我想要搜索的行,然后应该创建一个新的文本文件并从原始文件中复制提取的行。
这是文本文档的内容,在另一行之下:
为了匹配第3和第4行我使用了这个:
for line in lines:
if re.search("ProgramData\\\{[\w\-]+\}", line) >= 0:
fixes.append(line)
但是我遇到了第1行和第2行的问题,无论我使用哪种模式正在使用正则表达式测试器,它都无法在以后找到这些行。
感谢任何帮助。
答案 0 :(得分:0)
您可以使用以下RegEx:
ProgramData(?:\{[\w-]+\}|\\[\w-]+)
您的新代码将是:
for line in lines:
if re.search("ProgramData(?:\{[\w-]+\}|\\[\w-]+)", line) >= 0:
fixes.append(line)
RegEx如何运作:
ProgramData # ProgramData
(?: # Non-Capturing Group for data after ProgramData
\{[\w-]+\} # {} enclosing a Letter or - (Hyphen) one or more times
| # OR
\\[\w-]+ # \ followed by a Letter or - (Hyphen) one or more times
)