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 に答える