質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Q&A

解決済

2回答

235閲覧

正規表現を使って「あああああ」を「あいあいあいあいあ」に置換したい

Tadokoro

総合スコア14

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

0グッド

1クリップ

投稿2018/11/19 01:19

タイトルの通りなのですが、正規表現が使えるツールを使ってデータ加工をしていて
特定の文字に挟まれている部分全てに任意の文字を挿入したいです。

単純に「ああ」を「あいあ」に置換する、という設定にすると
「あいああいああ」になってしまします。
※二つのペアずつでしか見てくれない

この「ああ」を「あいあ」に置換する処理をもう一度走らせれば解決するのですが
正規表現で一行で書けないでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

後読みが使える環境であれば、/あ(?=あ)/あいに置換すればいいでしょう。この正規表現は、「次に『あ』が来る『あ』」だけにヒットします。

javascript

1var foo = 'あああああ' 2var replaced = foo.replace(/あ(?=あ)/g, 'あい')

投稿2018/11/19 01:26

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tadokoro

2018/11/19 04:10

ありがとうございます!こちらの正規表現で無事やりたいことができました!
guest

0

  • 「あ」を「あい」に変更する
  • 「ああ」を「あいあい」に変更する

のどちらかでしょう(実質上記で十分)

訂正

※上記間違えてました
とりあえず連続した文字の間に何かつっこむならこう

javasript

1var str="あああかかかああかかかあ"; 2var reg=/(.)(?=\1)/g; 3var replacement="$1い"; 4console.log(str.replace(reg,replacement));

投稿2018/11/19 01:26

編集2018/11/19 01:35
yambejp

総合スコア114775

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2018/11/19 01:30

あ、挟まれているんでしたね maisumakunさんの肯定先読みが有効です
Tadokoro

2018/11/19 04:11

コメントありがとうございます! maisumakunさんのもので解決しました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問