模块课程(2/4)
字边界:`\b` `\B`
\b 是一个 单词边界锚:它匹配 a 之间的 位置
单词字符 (\w) 和非单词字符 (\W, 或
字符串)。与 ^ 和 $ 一样,它不消耗字符。
Pattern: \bgatto\b
Sample: Il gatto e la gattina giocano.
^^^^^gatto 仅作为整个单词匹配:在 gattina 序列内
gatto 不存在(最后的 o 丢失),但它不匹配
gatti 要么因为最后的 i 是一个单词字符。
\B 是 相反:它匹配不是单词的位置
边界。
寻找“完整的单词”
\b 最典型的用法是“仅在孤立时匹配单词 X,而不是
作为另一个词的一部分”:
\bif\b matches 'if' but not 'sniff', 'gift', 'lifetime'.单词边界和非单词字符
边界 \\b 不匹配任何物理字符;这是一个位置测试。 \\b 边界存在于 \\w 字符和非 \\w 字符(或文本的开头/结尾)之间。否定 \\B 断言当前位置不是字边界。
尝试一下
查找整个单词“cat”的每个出现位置(不区分大小写)。它不能匹配“category”、“concatenate”、“scatter”。
显示提示
将 'cat' 包裹在两个 \\b: 开始处的边界和结束处的边界之间。
3 次尝试后可用的解决方案
复习练习
查找不属于标识符的每个整数(例如 `42` 是的,但既不是 `var42` 也不是 `42abc`)。两边都使用“\\b”。
显示提示
\\b\\d+\\b 仅匹配“孤立的”数字序列。 abc42 在 42 之前有“c”(单词)。
3 次尝试后可用的解决方案
额外的挑战
Find the sequence `cat` only if it starts a longer word, excluding when it appears as a whole word or at the end (e.g. match `catalog` but not `wildcat` or isolated `cat`).
显示提示
在 cat 的开头(字边界)使用 \\b,在结尾(非字边界)使用 \\B。
3 次尝试后可用的解决方案