[解決済み] 2文字の間に含まれる文字列を、区切り文字を除いて検索する正規表現
2022-03-24 13:41:46
質問
ある文字列から、2つの区切り文字の間に含まれる文字のセットを抽出したいのですが、区切り文字自体を返すことはできません。
簡単な例があると助かります。
対象 : 角括弧の間の部分文字列を抽出し、括弧自体を返しません。
ベースとなる文字列
:
This is a test string [more or less]
以下のようなREGを使用した場合。
\[.*?\]
マッチは
[more or less]
. を取得する必要があります。
more or less
(ブラケットなし)。
可能なのでしょうか?
どのように解決するのですか?
簡単にできます。
(?<=\[)(.*?)(?=\])
技術的には、ルックアヘッドとルックビハインドを使うことになります。参照 ルックヘッドとルックビハインドゼロ幅のアサーション . パターンで構成されています。
-
の前には
[
をキャプチャしない(lookbehind)。 -
欲張らないキャプチャーグループ。で止めるのは非貪欲です。
]
そして -
が続くと
]
が捕捉されない(ルックアヘッド)。
あるいは、角括弧の間だけをキャプチャすることもできます。
\[(.*?)\]
で、マッチ全体ではなく、最初にキャプチャされたグループを返します。
関連
-
[解決済み] 2回目以降で一致する
-
[解決済み] Powershellで完全一致の文字列のみを置換する
-
[解決済み] アドレスフィールド検証のための正規表現
-
[解決済み] 展開された正規表現では、どのように解釈されますか?
-
[解決済み] 正規表現 - Gmailアドレスの検証
-
[解決済み] 郵便番号の正規表現
-
[解決済み] JavaScriptの正規表現でマッチしたグループにアクセスするにはどうすればよいですか?
-
[解決済み] 正規表現で「この文字列までなら何でもあり」にマッチさせるには?
-
[解決済み] Regex 2つの文字列間のすべての文字にマッチする
-
[解決済み] 角括弧の間のテキストを抽出する正規表現
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Regex:最初に出現する文字までのマッチング
-
[解決済み] 正規表現におけるスラッシュのエスケープ
-
[解決済み] Regexオプショングループ
-
[解決済み] Regex オプション文字にマッチさせる方法
-
[解決済み] 正規表現の末尾にある中括弧内のカンマ区切りの数字は何を意味するのですか?
-
[解決済み] RegexにおけるOR条件
-
[解決済み] Regex for string contains?
-
[解決済み] Bashスクリプトで文字列が正規表現にマッチするかどうかをチェックする
-
[解決済み] 米国通貨RegExの "ベスト "は何か?
-
[解決済み] Grepの「Invalid range end」-バグか機能か?