teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2019/04/04 11:01

投稿

KojiDoi
KojiDoi

スコア13727

answer CHANGED
@@ -2,4 +2,12 @@
2
2
 
3
3
  ```
4
4
  echo '魚類(ホラアナゴ科、ゲンゲ科)、カニ(ズワイガニ)、エビ(テナガエビ)'|perl -pe 's/(?<!))、/\|/g'
5
+ ```
6
+
7
+ 追記:
8
+ `)`のあとに`、`という条件判定が使えないなら、正規表現一発での対応は難しいでしょう。
9
+
10
+ 以下のスクリプトでは、カッコで含まれた部分を取り出し、その中身を`、`で分割して`|`を介してくっつけ直すという方法を使ってみました。
11
+ ```
12
+ echo '魚類(ホラアナゴ科、ゲンゲ科)、カニ(ズワイガニ)、エビ(テナガエビ)ウニ、ヒトデ、その他(生物)'|perl -pe '$s=sub{join("|",split(/、/, $_[0]))}; s/((.*?))/$s->($1)/ge'
5
13
  ```