1

我有一个看起来像这样的文本文件

other stuff
set fmri(custom11) "/home/this/is/a/sample_path/to_some/arbitarily/named_11/file-with-othercharacters/file.txt"
other stuff

我想使用 Python 来搜索该文件

  • 所有行".txt"
  • 在行上替换"11"为,但仅在文件路径中,而不是在字符串中。"12"".txt""custom11"
  • 我省略了循环逻辑,只是为了专注于re.search和re.sub的使用。
if re.search('.txt', line):
   print(re.sub("11", "12", line), end='')

不知何故,在 re.search 中找不到 .txt。如果我使用:

if re.search('xt', line): 

我得到了大部分包含文本文件的行,还有其他东西。如何正确找到'.txt'文件行?

此外,在测试时,将re.sub替换1112,还会导致"custom11"更改为"custom12"。有没有办法改变行中的子字符串?

4

1 回答 1

1

In regular expression, a . signifies any single character. Use \..

if re.search('\.txt', line):
   print(re.sub("11", "12", line), end='')
于 2012-11-21T17:45:05.580 回答