回答編集履歴

1

追記

2019/04/04 11:01

投稿

KojiDoi
KojiDoi

スコア13671

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