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

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

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

730閲覧

【正規表現】特定の文字列から特定の文字列の間でマッチング処理を行いたい

augustbures

総合スコア1

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2021/10/03 12:19

前提・実現したいこと

.match()を使用して
{"test":["value","value2","value3"],"test2":["value","value2"],"test3":"value"}
のJSON形式の文字列から、先頭が「"test2":」から「:」で終わる文字列の中で、「"value"」という文字をマッチングさせる正規表現を使いたいです。
上記のような複数のJSON形式が格納されているListがあるのですが、指定したKEYとvalueにヒットするデータを正規表現で取得したいと思っております。当初は^(?=.*test2)(?=.value2).$という感じで考えていたのですが、これですと
{"test":["value","value2","value3"],"test2":"value","test3":"value"}
のようなJSON形式の文字列にもマッチングしてしまいますので、何か良い正規表現方法があればご教示願いたいです。
※それぞれのKeyのvalue,value2,value3は同じ値です

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

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

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

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

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

itagagaki

2021/10/03 12:37

まっとうにJSON.parse()でオブジェクトを構築してオブジェクトの検索や操作を行うのではダメなのですか?
augustbures

2021/10/03 12:43

はい、いろいろ言えない理由があるのですが今回は正規表現のみで実現させたいと思ってます。
yambejp

2021/10/04 01:41

ちょっとめんどうな案件ですから条件を明確にしてください "test2"というキーで値が配列で"value"を含めばいいのですか?
augustbures

2021/10/04 12:31

ご回答ありがとうございます。はい、他のキーの値に引っかからないように"test2"というキーで値が配列で"value"を含めるマッチングです。 >原則正規表現でやるべきことではないのは理解ください。 やっぱりそうですよね....回答いただいた正規表現でのマッチングは最後の手で利用したいと思います。
guest

回答1

0

ベストアンサー

原則正規表現でやるべきことではないのは理解ください。
今提示されている条件だけで判断するならこんな感じ

javascript

1const reg=/"test2":[[^]]*"value"/; 2const json1=`{"test":["value","value2","value3"],"test2":["value","value2"],"test3":"value"}`; 3console.log(reg.test(json1));//true 4const json2=`{"test":["value","value2","value3"],"test2":"value","test3":"value"}`; 5console.log(reg.test(json2));//false

投稿2021/10/04 01:46

yambejp

総合スコア116724

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問