Java正则匹配器:透明边界、锚定边界及扫描器方法详解
1. 透明边界与锚定边界
在正则表达式匹配中,透明边界和锚定边界是两个重要的概念,它们可以影响匹配的结果。
1.1 透明边界
透明边界标志(transparent-bounds flag)决定了正则引擎是否能“看到”区域边界之外的字符。默认情况下,该标志为 false
,这意味着区域边界对于前瞻、后瞻和单词边界等“查找”结构是不透明的,正则引擎无法看到区域边界之外的字符。
相关方法如下:
- Matcher useTransparentBounds(boolean b)
:根据传入的参数将匹配器的透明边界标志设置为 true
或 false
,默认值为 false
。该方法返回匹配器对象本身,可用于方法链调用。
- boolean hasTransparentBounds()
:如果透明边界生效,则返回 true
,否则返回 false
。
以下是一个示例,展示了默认透明边界标志为 false
时的情况:
String regex = "\\bcar\\b"; // "\b car\b"
String text = "Madagascar is best seen by car or bike.";
Matcher m