1

我有读取文本文件的代码,并将文本中 TLA 的数量作为包含文本的行数的百分比输出。

import re
total_lines = 0
matched_lines = 0
for line in open("sentences.txt"):
    total_lines += 1
    matched_lines += bool(re.search(r"\b[A-Z]{3}\b", line))
    matched_lines += bool(re.search(r"\b[A-Z]\\.[A-Z]\\.[A-Z]\b", line)) # DOES NOT WORK
print('{}% of sentences contain a TLA'.format(round(float(matched_lines) / total_lines * 100, 1)))

我正在尝试做的是计算 TLA 与它们之间的句号。所以就像现在它计算 WWW,但我希望它也计算 WWW。

4

1 回答 1

2

在你的重新它应该\.不是\\.

在 Python 中,r外部字符串生成原始字符串字面量。原始字符串文字的好处是反斜杠 ( \) 对 Python 来说不是特殊的,这意味着它更容易传递到re它们特殊的地方。

在这两行中,您都使用原始字符串文字(好!),因此\b指定了单词边界。但是,\\.正在寻找一个\后跟任何字符。你想要的\.是一个字面量.

于 2013-08-17T23:11:07.407 回答