1

文字列内の部分文字列のすべてのインスタンスを見つけるにはどうすればよいですか?

たとえば、文字列 ( "%1 is going to the %2 with %3") があります。この文字列のすべてのプレースホルダーを抽出する必要があります ( %1, %2, %3)

末尾が空白ではないため、現在のコードは最初の 2 つしか検出できませんでした。

import re
string = "%1 is going to the %2 with %3"


r = re.compile('%(.*?) ')
m = r.finditer(string)
for y in m:
 print (y.group())
4

1 に答える 1

5

空白で一致しないでください。代わりに次を使用して単語境界で一致します\b

r = re.compile(r'%(.*?)\b')

.文字をワイルドカードの代わりに単語文字のみに制限し、少なくとも 1 つの文字に一致させたい場合があります。

r = re.compile(r'%(\w+)\b')

キャプチャ グループも使用していないように見えるため、それを省略できます。

r = re.compile(r'%\w+\b')
于 2013-05-08T19:24:59.287 に答える