[解決済み】JavaScript regex 2つのタグの間にある複数行のテキスト
2022-04-18 09:13:31
質問
HTMLから文字列を取得する正規表現を書きましたが、multilineフラグが効かないようです。
これは私のパターンです。
h1
タグを使用します。
var pattern= /<div class="box-content-5">.*<h1>([^<]+?)<\/h1>/mi
m = html.search(pattern);
return m[1];
試しに文字列を作成してみました。この文字列の中に" \n" が含まれていると、結果は常にnullになります。をすべて削除すると、"not "があってもなくても正しい結果が得られました。
/m
フラグを使用します。
私の正規表現に何か問題があるのでしょうか?
解決方法は?
あなたが探しているのは
/.../s
修飾子、またの名を
ドットオール
修飾子です。これは、強制的にドット
.
は改行にもマッチしますが、それは
しない
をデフォルトで使用します。
悪い点は、それが
はJavaScriptには存在しません。
(ES2018の時点ではそうなっています。下記参照)
. 良いニュースは、文字クラスを使用することで回避できることです(例えば
\s
) とその否定 (
\S
)を一緒にして、このようにします。
[\s\S]
つまり、あなたの場合、正規表現は次のようになります。
/<div class="box-content-5">[\s\S]*<h1>([^<]+?)<\/h1>/i
ES2018の時点で、JavaScriptがサポートしている
s
(dotAll) フラグを使用するため、最新の環境では正規表現を書いたとおりになりますが、その中に
s
フラグを末尾につける(むしろ
m
;
m
がどのように変化するか
^
と
$
は動作しますが
.
):
/<div class="box-content-5">.*<h1>([^<]+?)<\/h1>/is
関連
-
[解決済み】FirefoxでGoogle Maps V3をリモートで使用すると「googleが定義されていません」と表示される。
-
[解決済み] JavaScriptで複数行の文字列を作成する
-
[解決済み] 2つのJavaScriptオブジェクトのプロパティを動的にマージするにはどうすればよいですか?
-
[解決済み] JavaScriptで2つの日付を比較する
-
[解決済み] JavaScriptで2つの数値の間の乱数を生成する
-
[解決済み] XHTMLの自己完結型タグを除くオープンタグにマッチするRegEx
-
[解決済み] JavaScriptのnullとundefinedの違いは何ですか?
-
[解決済み] JavaScriptで2つの配列の差を取得する方法は?
-
[解決済み] Regex 2つの文字列間のすべての文字にマッチする
-
[解決済み】JavaScriptで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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】jquery $.ajaxオブジェクトのresponseJSONプロパティを取得する方法 [重複]。
-
[解決済み】JavaScriptのinnerHTMLで要素が更新されない
-
[解決済み】ある要素を別の要素に移動させるには?
-
[解決済み] ローカルファイルを開くことができません - Chrome: ローカルリソースのロードが許可されていません
-
[解決済み】React-Routerの子が1つしかない。
-
[解決済み】JavaScriptで相対URLへのリダイレクトを行う
-
[解決済み】react router v^4.0.0 Uncaught TypeError: 未定義のプロパティ'location'を読み取れない
-
[解決済み] Uncaught (in promise) TypeError: フェッチに失敗してCorsエラー
-
[解決済み】改行を含む任意の文字にマッチする正規表現
-
[解決済み】JSでHTML文字列をパースする