|
在这个有多行文本的例子中,模式 /^\d/gm 将从每行的开头取一个数字:
let str = `1st place: Winnie
2nd place: Piglet
3rd place: Eeyore`;
console.log( str.match(/^\d/gm) ); // 1, 2, 3
没有修饰符 m 时,仅会匹配第一个数字:
let str = `1st place: Winnie
2nd place: Piglet
3rd place: Eeyore`;
console.log( str.match(/^\d/g) ); // 1
这是因为默认情况下,锚点 ^ 仅匹配文本的开头,在多行模式下,它匹配行的开头。
请注意:
“行的开头”表示“就在换行符之后”:多行模式下的测试 ^ 匹配所有以换行符 \n 开头的位置。
以及在文本开始的位置。
搜索行的末尾 $
美元符 $ 的行为也类似。
正则表达式 \d$ 寻找每行的最后一个数字
let str = `Winnie: 1
Piglet: 2
Eeyore: 3`;
console.log( str.match(/\d$/gm) ); // 1,2,3
没有修饰符 m,那么美元符 $ 将只会匹配整个文本的末尾,所以只有最后一个数字会被匹配。
请注意:
“行的末尾”表示“就在换行符之前”:多行模式下的测试 $ 匹配所有以换行符 \n 结尾的位置。
以及在文本末尾的位置。
|
|