vimの次の問題:
サブパターンの各一致を別の一致グループにキャプチャしたいと考えています。例: 行の場合:
#abcONE# #abcTWO#
そして検索パターン
\(#abc...#\)*
両方のグループを取得したい
1: #abcONE# 2: #abcTWO#
残念ながら、最後に認識されたサブパターンを含むグループを 1 つしか取得できません。つまり、
#abcTWO#
解決策を知っていますか?
vimの次の問題:
サブパターンの各一致を別の一致グループにキャプチャしたいと考えています。例: 行の場合:
#abcONE# #abcTWO#
そして検索パターン
\(#abc...#\)*
両方のグループを取得したい
1: #abcONE# 2: #abcTWO#
残念ながら、最後に認識されたサブパターンを含むグループを 1 つしか取得できません。つまり、
#abcTWO#
解決策を知っていますか?
キャプチャされたグループは番号で直接参照することしかできないため\1
(範囲やワイルドカードでは参照できません)、とにかく、事前に使用されているグループの数を知っておく必要があります。
*
それなら、マルチアイテムを個別のグループに展開して、すべてがオプションで一致するのはなぜですか\?
?
\(#abc...#\)\?\(#abc...#\)\?\(#abc...#\)\?\(#abc...#\)\?
マッチしたパターンで何をしますか?交換しますか?
/#abc...# will select both
:%s/\v(#abc...#)/foo/g will replace both
あなた\(#abc...#\)*
は動作しません。2つの「#abc...#」の間にスペースがあるため