4

通常、sedを呼び出すときは\1、サブマッチ番号1を参照するために呼び出すことができます。

<something> | sed "s/<regex>\(<regex>\)<regex>/\1/"

これにより、中央の正規表現が取得され、外側の正規表現が削除されます。

しかし、9試合以上ある場合はどうしますか?単に書く\10ことは、として解釈されるため、機能しませんtake submatch number one and add a zero behind it

4

2 に答える 2

7

sedではできません。別のツールを使用する必要があります。

SOに関する同様の質問は次のとおりです。

\1 から \9 までの sed 後方参照制限を回避します

sedで10番目のグループ値を取得するには?

于 2012-08-06T17:56:05.513 に答える
1

SEDについてはよくわかりませんが、多くの言語(javascript、ruby)では、サブマッチング(またはバックリファレンスと呼ばれることもあります)を許可する正規表現の実装があり\1\9. \10は単に許可されていません。

追加の後方参照には、より洗練されたパーサーを使用する必要があります。

于 2012-08-06T17:42:48.163 に答える