测试字符串:
AS / ANZ 1234
正则表达式:
\bAS\b
匹配:
AS
如果\ b是简写:
(^\w|\w$|\W\w|\w\W)
为什么选择正则表达式:
(^\w|\w$|\W\w|\w\W)AS(^\w|\w$|\W\w|\w\W)
找不到匹配项?
更新(根据评论中的问题) 我在提问之前试图解决自己的问题。在https://regex101.com/
测试正则表达式我进入了:
\bAS\b
说明(在右侧)表示它是:
的简写(^\w|\w$|\W\w|\w\W)AS(^\w|\w$|\W\w|\w\W)
当然,我可能会错误地解释说明。
答案 0 :(得分:1)
字边界的定义没有细微差别。它完全符合documentation所说的。它是零宽度。因此,无法使用任何非零宽度的regexp构造模拟或模仿它,如您的示例所示。在您的示例中:
(^\w|\w$|\W\w|\w\W)AS(^\w|\w$|\W\w|\w\W)
匹配" AS / ANZ 1234",初始^\w
将"吃" " A",使其无法匹配" AS"。以下\w\W
将" eat" " S"也让它无法与#34; S"匹配。