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

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

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

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

Q&A

解決済

1回答

603閲覧

"> Hello <"のHello部分だけを抜き取りたい(正規表現)

mask_mus

総合スコア37

正規表現

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

0グッド

0クリップ

投稿2021/02/07 05:39

編集2021/02/07 06:18

"> Hello <"という文字列のHelloだけの部分を抜き取りたいです。
以下のような正規表現を書いたのですが、両端の不等号も一緒に出力されてしまいます。普通に文字列処理をすれば取り除けると思うのですが、
正規表現の処理だけで完結させることはできるのでしょうか?

処理対象の文字列の要件は以下の通りです

  • 抜き出したい文字

・>と<で囲まれた文字で、両端のスペースは除く
・"> Hello <"の場合、"Hello"

  • 出てくる文字列

・A-Z
・a-z
・<
・>
・スペース
以上の文字がランダムに並んでいる(例:"abc def > ghi < jkl"、ghiを抜き出したい場合)

  • 制約

・>と<は必ず1個づつ含まれている
・必ず最初に>がでてきて、その後<が出てくる

js

1p=/>\s*\w+\s*</ 2s="> Hello <" 3s.match(p) //=>["> Hello <", index: 0, input: "> Hello <", groups: undefined]

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

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

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

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

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

hentaiman

2021/02/07 05:42

具体的なパターンか、抜き出したいパターンを複数載せるかしないと取り出せる正規表現の幅が広い。ので、質問を修正して要件を詰めましょう。
maisumakun

2021/02/07 05:49 編集

> 他の言語でも使えるやり方があれば教えていただきたいです。 正規表現の機能性自体が言語によって異なります。「JavaScriptでは動かない」正規表現も存在します。
guest

回答1

0

ベストアンサー

やりたいのは多分こういうことでしょうかね。

p.match(/> (.*) </)[1]

「Helloの部分だけ」が、「アルファベットだけ」なのか「スペースと不等号記号に挟まれた部分」なのか、それ以外なのか、いろいろ可能性が考えられますが、その辺は深く考えていません。

投稿2021/02/07 06:09

KojiDoi

総合スコア13692

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問