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

回答編集履歴

2

修正

2016/03/29 13:46

投稿

hirohiro
hirohiro

スコア2068

answer CHANGED
@@ -3,3 +3,10 @@
3
3
 
4
4
  「aeeebbdddabccccffff」に「reg = "/[^abc]+/";」で検索かけると、HITするのは「eee」と「ddd」と「ffff」だと思いますよ。
5
5
  regの意味は「a」でも「b」でも「c」でもない文字一文字以上の連続した塊です。
6
+
7
+
8
+ > preStr = "aeeebbddd「abc」cccffff";
9
+ resStr = "aeeebbdddcccffff";
10
+ となる様な正規表現
11
+
12
+ 条件に一致する塊を検出するものですから、間を抜いた文字列を正規表現だけで直接取り出すことは出きません。単にresStrを得たいだけなら「abc」を検出して、これを空白に置換してしまえば良いのではないでしょうか?

1

修正

2016/03/29 13:46

投稿

hirohiro
hirohiro

スコア2068

answer CHANGED
@@ -3,9 +3,3 @@
3
3
 
4
4
  「aeeebbdddabccccffff」に「reg = "/[^abc]+/";」で検索かけると、HITするのは「eee」と「ddd」と「ffff」だと思いますよ。
5
5
  regの意味は「a」でも「b」でも「c」でもない文字一文字以上の連続した塊です。
6
-
7
- > preStr = "aeeebbddd「abc」cccffff";
8
- resStr = "aeeebbdddcccffff";
9
- となる様な正規表現
10
-
11
- 条件に一致する塊を検出するものですから、間を抜いた文字列を正規表現だけで直接取り出すことは出きません。ただreg='/「abc」/'; なら「aeeebbddd」と「cccffff」がHITするはずですので、これを連結すれば宜しいかと