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

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

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

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

正規表現

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

Q&A

解決済

3回答

814閲覧

空白文字に挟まれた文字列を抜き出す正規表現(JavaScript)

mou13_cyuki

総合スコア3

JavaScript

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

正規表現

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

0グッド

0クリップ

投稿2023/03/27 09:35

編集2023/03/27 20:49

実現したいこと

  • 正規表現で、空白文字に挟まれた文字列を抜き出したい

内容

JavaScriptで下記のような配列の各要素から、空白文字に囲まれた文字列のうち、1つ目だけ(下記の場合"あいうえお"と"たちつてとなにぬねの")取り出す方法を教えていただけないでしょうか?
正規表現で取得しようとしたものの、やり方がいまいちわかりませんでした。

selectNames = [ {Name: '\n\t\t\t\t\t\t\n\t\t\t\t\t\tあいうえお\n\t\t\t\t\t\tかきくけこ\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tさしすせそ\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t'}, {Name: '\n\t\t\t\t\t\t\n\t\t\t\t\t\tたちつてとなにぬねの\n\t\t\t\t\t\tはひふへほ\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tまみむめも\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t'} ]

タブ文字や改行文字を置換しようとしても、後ろの"かきくけこ"や"さしすせそ"が繋がってしまい、"あいうえおかきくけこさしすせそ"となってしまい上手くいきませんでした。

どうぞよろしくお願いします。

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

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

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

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

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

guest

回答3

0

javascript

1selectNames.map(s => s.Name.split(/\s(\S+)\s/, 2)[1]) 2 3# [ 'あいうえお', 'たちつてとなにぬねの' ]

投稿2023/03/27 10:35

melian

総合スコア19618

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

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

0

javascript

1const selectNames = [ 2{Name: `\n\t\t\t\t\t\t\n\t\t\t\t\t\tあいうえお\n\t\t\t\t\t\tかきくけこ\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tさしすせそ\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t`}, 3{Name: `\n\t\t\t\t\t\t\n\t\t\t\t\t\tたちつてとなにぬねの\n\t\t\t\t\t\tはひふへほ\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tまみむめも\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t`}, 4{Name: `\t\t\t\t\t\t`}, 5{Name: `a\t\t\t\t\t\tb`}, 6{Name: `a\t\t\tb\t\t\tc`}, 7] 8const reg=/(?<=^\s+)\S+?(?=\s)/; 9const result=selectNames.map(x=>reg.test(x.Name)?x.Name.match(reg)[0]:null); 10console.log(result);

投稿2023/03/27 09:57

編集2023/03/27 09:59
yambejp

総合スコア114581

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

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

yambejp

2023/03/27 09:59

先頭や末尾が空白文字ではないときにどうしたいか次第ですね
guest

0

ベストアンサー

正解はこちらですが、もう少し試行錯誤の内容を書いていただいて、何につまずいているかを指摘してもらったほうが良いかなと思います。

javascript

1const extractedStrings = selectNames.map(element => { 2 // 最初の空白文字に挟まれた文字列を抜き出す 3 const match = element.Name.match(/\s+(\S+)\s+/); 4 return match ? match[1] : ''; 5}); 6 7console.log(extractedStrings); // ["あいうえお", "たちつてとなにぬねの"]

投稿2023/03/27 09:40

matsubokkuri

総合スコア744

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

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

mou13_cyuki

2023/03/27 11:49

ありがとうございます。 おっしゃる通り、どこでつまずいているか具体的に記載しておくべきでした。 一番早くご回答いただきましたのでベストアンサーとさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問