22
33词边界 ` pattern:\b ` 是一种检查,就像 ` pattern:^ ` 和 ` pattern:$ ` 一样。
44
5- 当正则表达式引擎(实现搜索正则表达式的程序模块 )遇到 ` pattern:\b ` 时,它会检查字符串中的位置是否是词边界。
5+ 当正则表达式引擎(实现正则表达式搜索的程序模块 )遇到 ` pattern:\b ` 时,它会检查字符串中的位置是否是词边界。
66
77有三种不同的位置可作为词边界:
88
99- 在字符串开头,如果第一个字符是单词字符 ` pattern:\w ` 。
1010- 在字符串中的两个字符之间,其中一个是单词字符 ` pattern:\w ` ,另一个不是。
1111- 在字符串末尾,如果最后一个字符是单词字符 ` pattern:\w ` 。
1212
13- 例如,可以在 ` subject:Hello, Java! ` 中找到匹配 ` pattern:\bJava\b ` 的单词 ,其中 ` subject:Java ` 是一个独立的单词,而在 ` subject:Hello, JavaScript! ` 中则不行。
13+ 例如,可以在 ` subject:Hello, Java! ` 中找到 ` pattern:\bJava\b ` 的匹配项 ,其中 ` subject:Java ` 是一个独立的单词,而在 ` subject:Hello, JavaScript! ` 中则不行。
1414
1515``` js run
1616alert ( " Hello, Java!" .match (/ \b Java\b / ) ); // Java
@@ -21,32 +21,32 @@ alert( "Hello, JavaScript!".match(/\bJava\b/) ); // null
2121
2222![ ] ( hello-java-boundaries.svg )
2323
24- 因此,它与模式 ` pattern:\bHello\b ` 相匹配,因为:
24+ 因此,它与正则表达式 ` pattern:\bHello\b ` 相匹配,因为:
2525
26- 1 . 字符串的开头符合第一种检查 ` pattern:\b ` 。
26+ 1 . 字符串的开头符合第一个检查 ` pattern:\b ` 。
27272 . 然后匹配了单词 ` pattern:Hello ` 。
28- 3 . 然后与 ` pattern:\b ` 再次匹配,因为我们在 ` subject:o ` 和一个空格之间 。
28+ 3 . 然后与 ` pattern:\b ` 再次匹配,因为我们在 ` subject:o ` 和逗号之间 。
2929
30- 模式 ` pattern:\bJava \b ` 也同样匹配。 但 ` pattern:\bHell\b ` (因为 ` l ` 之后没有词边界)和 ` Java!\b ` (因为感叹号不是单词 ` pattern:\w ` ,所以其后没有词边界)却不匹配 。
30+ 所以正则表达式 ` pattern:\bHello \b ` 会匹配, 但 ` pattern:\bHell\b ` 不会匹配(因为在 ` l ` 之后没有单词边界), ` Java!\b ` 也不会匹配(因为感叹号不是单词字符 ` pattern:\w ` ,所以其后没有词边界)。
3131
3232``` js run
3333alert ( " Hello, Java!" .match (/ \b Hello\b / ) ); // Hello
3434alert ( " Hello, Java!" .match (/ \b Java\b / ) ); // Java
35- alert ( " Hello, Java!" .match (/ \b Hell\b / ) ); // null (no match)
36- alert ( " Hello, Java!" .match (/ \b Java!\b / ) ); // null (no match)
35+ alert ( " Hello, Java!" .match (/ \b Hell\b / ) ); // null(无匹配项)
36+ alert ( " Hello, Java!" .match (/ \b Java!\b / ) ); // null(无匹配项)
3737```
3838
3939` pattern:\b ` 既可以用于单词,也可以用于数字。
4040
41- 例如,模式 ` pattern:\b\d\d\b ` 查找独立的两位数。换句话说,它查找的是两位数,其周围是与 ` pattern:\w ` 不同的字符,例如空格或标点符号(或文本开头/结尾)。
41+ 例如,正则表达式 ` pattern:\b\d\d\b ` 查找独立的两位数。换句话说,它查找的是两位数,其周围是与 ` pattern:\w ` 不同的字符,例如空格或标点符号(或文本开头/结尾)。
4242
4343``` js run
4444alert ( " 1 23 456 78" .match (/ \b \d\d \b / g ) ); // 23,78
4545alert ( " 12,34,56" .match (/ \b \d\d \b / g ) ); // 12,34,56
4646```
4747
4848```warn header="词边界 ` pattern:\b ` 不适用于非拉丁字母"
49- 词边界测试 ` pattern:\b ` 检查位置的一侧是否匹配 ` pattern:\w ` ,而另一侧则不匹配 "` pattern:\w ` "。
49+ 词边界测试 ` pattern:\b ` 检查该位置的一侧是否匹配 ` pattern:\w ` ,而另一侧则不匹配 "` pattern:\w ` "。
5050
51- 但是,` pattern:\w ` 表示拉丁字母 ` a-z ` (或数字或下划线),因此此检查不适用于其他字符 ,如西里尔字母(cyrillic letters)或象形文字(hieroglyphs)。
51+ 但是,` pattern:\w ` 表示拉丁字母 ` a-z ` (或数字或下划线),所以此检查不适用于其他字符 ,如西里尔字母(cyrillic letters)或象形文字(hieroglyphs)。
5252```
0 commit comments