1. ホーム
  2. python

[解決済み] 正規表現:先頭または空白にマッチ

2023-06-21 23:46:49

質問

正規表現は空白にマッチしますか? または にマッチしますか?

通貨略語 GBP を£記号に置き換えようとしています。GBPで始まるものはすべてマッチさせることができますが、もう少し保守的になって、その周りの特定の区切り文字を探したいと思っています。

>>> import re
>>> text = u'GBP 5 Off when you spend GBP75.00'

>>> re.sub(ur'GBP([\W\d])', ur'£\g<1>', text) # matches GBP with any prefix
u'\xa3 5 Off when you spend \xa375.00'

>>> re.sub(ur'^GBP([\W\d])', ur'£\g<1>', text) # matches at start only
u'\xa3 5 Off when you spend GBP75.00'

>>> re.sub(ur'(\W)GBP([\W\d])', ur'\g<1>£\g<2>', text) # matches whitespace prefix only
u'GBP 5 Off when you spend \xa375.00'

後者の例の両方を同時に行うことは可能でしょうか?

どのように解決するのですか?

OR "を使用します。 | "演算子を使用します。

>>> re.sub(r'(^|\W)GBP([\W\d])', u'\g<1>£\g<2>', text)
u'\xa3 5 Off when you spend \xa375.00'