0

私はテキストファイル(たとえばtest.txt)を持っています

a  ......
aa ......
a+a .....
aa+ .....
a+  .....
aaa .....
.........

ここで、「a」、「aa+」などの特定の文字列の行番号を見つけたいと思います。正規表現を使用して入力文字列の正確な一致を見つけようとしました。

name='a'

import re
p = re.compile(r'\b'+re.escape(name)+ r'\b')

i=0
with open('test.txt') as inpfile:
    for num, line in enumerate(inpfile):
        if p.search(line):
            print num

プログラムは「0」のみを出力する必要がありますが、その出力は 0,2,4 です。

私の期待される出力は

name='a'

出力: 0

name='aa'

出力: 1

name='aa+'

出力: 3 など...

上記で使用した正規表現が正しくないことがわかりました。ただし、すべてのパターンで目的の出力が得られるように正規表現をコンパイルするためのコメント/提案を共有していただけると助かります。

ありがとう。

4

3 に答える 3