私は正規表現の初心者で、比較的単純なことを達成しようとしています:
次のように配置されたデータセットがあります。
1,AAA,aaaa,BBB,bbbbbb ...
2,AAA,aaaaaaa,BBB,bbb ...
3,AAA,aaaaa,BBB,bb ...
AAA または BBB に続くさまざまな長さ (英数字) の文字列に中括弧を追加することを検討しています (これらは一定です)。
1,AAA,{aaaa},BBB,{bbbbbb} ...
2,AAA,{aaaaaaa},BBB,{bbb} ...
3,AAA,{aaaaa},BBB,{bb} ...
だから私はこの方法でsedを試しました:
sed 's/(AAA|BBB)[[:punct:]].[[:alnum:]]/\1{&}/g' dataset.txt
しかし、私はこの結果を得ました:
1,AAA,{AAA,aa}aa,BBB,{BBB,bb}bbbb, ...
2,AAA,{AAA,aa}aaaaa,BBB,[BBB,bb}b, ...
3,AAA,{AAA,aa}aaa,BBB,{BBB,bb} ...
明らかに、&
の置換部分はsed
一致したパターンになりますが、一致したパターンの&
後にあるものだけになりたいのですが、何が間違っていますか?
[^ ]
また、無駄になった後、単語の境界を追加しようとしました。で頑張りすぎていsed
ませんか?代わりに、後読みを許可する言語を使用する必要がありますか?
助けてくれてありがとう!