3

JavaScript の正規表現では、グローバルには「g」修飾子を、複数には「m」修飾子を入れることができます。それらの違いは何ですか、それとも同じものですか?

4

2 に答える 2

10

m「複数」ではなく、「複数行」の略です。そして、(文字列の先頭と末尾だけでなく) 行頭と行末でそれぞれ作成^および一致します。$

ええと、g実際には「グローバル」を意味するため、正規表現エンジンは最初の一致の後にさらに一致を見つけ続けます。

正規表現修飾子に関する詳細情報。

于 2012-11-15T00:48:52.300 に答える
0

/mのエンハンス モード修飾子と考えることができます/g

ここに簡単なテストがあります:

hello my darling 
you are so sweat
and hello my beauty
hello my lady
you are so kind
hello my heartbeat
you drum like a spring wind

/^hello/g: 1 つの部分文字列のみに一致します。文字列全体の最初の文字列である「hello」です。

/g先頭の "hello" から末尾の "wind" までの文字列全体の一致に使用します。

/^hello/gm: 1,4,6 行のみに一致します。

/gm文字列全体の一致にも使用しますが、文字列全体を改行で分割し、文字列全体の最初から最後までを単純にテストするのではなく、指定されたパターンで各行を (行ごとに) テストします。

それが役立つことを願っています。

于 2021-11-22T02:37:23.200 に答える