テキスト行の末尾にあるオプションのタグに一致させたい。
入力テキストの例:
The quick brown fox jumps over the lazy dog {tag}
中括弧の部分を一致させ、それへの後方参照を作成したいと思います。
私の正規表現は次のようになります。
^.*(\{\w+\})?
(やや簡略化されていますが、タグの前の部分も一致しています):
行は (タグの有無にかかわらず) 一致しますが、タグへの後方参照は作成されません。
「?」を削除すると 文字なので、正規表現は次のとおりです。
^.*(\{\w+\})
タグへの後方参照を作成しますが、タグのない行とは一致しません。
http://www.regular-expressions.info/refadv.htmlから、オプションの演算子は後方参照に影響しないことがわかりました。
丸かっこは、それらの間の正規表現をグループ化します。それらは、後方参照で再利用できる内部の正規表現に一致するテキストをキャプチャし、グループ化された正規表現全体に正規表現演算子を適用できるようにします。
しかし、何かを誤解しているに違いありません。
タグ部分をオプションにして、存在する場合に後方参照を作成するにはどうすればよいですか?