3

在 javascript 正则表达式中,您可以为全局添加一个“g”修饰符,为多个添加一个“m”。它们之间有什么区别,或者它们是同一个东西?

4

2 回答 2

10

m不代表“multiple”,而是代表“multiline”。它分别在行的开头和结尾进行匹配(而不仅仅是字符串的开头和结尾)^$

好吧,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: 只会匹配一个子字符串,就是开头的那个,整个字符串的“hello”。

/g用于匹配从开头“hello”到结尾“wind”的整个字符串。

/^hello/gm: 将单独匹配 1,4,6 行。

/gm也用于匹配整个字符串,但它会通过换行符分割整个字符串 > 并且它将使用给定的模式(逐行)测试每一行 > 而不是简单地测试整个字符串的开头到结尾。

希望它会有所帮助。

于 2021-11-22T02:37:23.200 回答