より具体的には、次の行があります (特定の文字列内の他の行の中に):
sudo:x:27:foo,bar,baz
^---we need to match this character
プレフィックスは既知であり、次のように表すことができます。^sudo:x:\d+
問題: 肯定的な後読みアサーションは固定サイズでなければなりません。(?<=sudo:x:\d+)
問題: その正確なコロンを一致させる方法 (そして、一致する唯一の文字でなければなりません)
プレイグラウンド: http://regex101.com/r/gG9vW6/2
PS: なぜそれが必要なのか知りたい人のために:
これはより大きなタスクの一部に過ぎず、次のように表現できます: ユーザーを sudo グループに追加します (使用されているソフトウェアに起因するものであり、変更できません)。
- 置換操作しか実行できないため、任意の文字に一致する必要があります
(matches)
置換文字列で正規表現と参照を使用することは技術的に不可能です
アップデート
を使う方法があるので、(matches)
もう問題ありません:-)
これは、cfengine で一致を参照する方法です。
$(match.N)
ここで、N はキャプチャ グループのインデックスです。
参照: https://docs.cfengine.com/docs/3.5/manuals-language-concepts-pattern-matching-and-referencing.html