に「+」とタグの解析方法:私はこれをコンパイルしようとすると、私はエラーを「繰り返すように何も」きませんよパイソン
search = re.compile(r'([^a-zA-Z0-9])(%s)([^a-zA-Z0-9])' % '+test', re.I)
問題は「+」記号です。私はそれをどのように扱うべきですか?
に「+」とタグの解析方法:私はこれをコンパイルしようとすると、私はエラーを「繰り返すように何も」きませんよパイソン
search = re.compile(r'([^a-zA-Z0-9])(%s)([^a-zA-Z0-9])' % '+test', re.I)
問題は「+」記号です。私はそれをどのように扱うべきですか?
re.compile(r'([^a-zA-Z0-9])(%s)([^a-zA-Z0-9])' % '\+test', re.I)
「+」は、正規表現で「1回以上繰り返す」量指定子です。繰り返し可能なものに従わなければならないし、リテラル "+"にマッチさせたい場合にはエスケープする必要がある。
正規表現を動的に作成したい場合は、これを改善します。
re.compile(r'([^a-zA-Z0-9])(%s)([^a-zA-Z0-9])' % re.escape('+test'), re.I)
:
r'\+test'
プラスは(「前回または数回に一致する」という意味)正規表現で特別な意味を持っています。あなたの正規表現では開いた括弧の後に現れるので、繰り返し一致する "前の"ものはありません。
マークがすばやく! これは変数のどこでもOKです。 tag = '+ test'(またはtag = 'test') 検索= re.compile(r '([a-zA-Z0-9])(%s )([^ a-zA-Z0-9]) '%r' \%s '%tag、re.I) ありがとうございます。 – PhoebeB