我想问一个关于令牌的基本问题,
在阅读关于正则表达式时,书标签插入符号(^)作为零宽度标记,
你能告诉我零宽度究竟意味着什么吗?
答案 0 :(得分:6)
这意味着它匹配而不消耗任何字符。它只是一个位置断言(“必须在行的开头”)。另一个例子是零宽度前瞻和后置断言。例如,Perl正则表达式/abc(?=123)/
仅匹配序列abc
,如果后面跟着序列123
,但它实际上不会消耗123
。
答案 1 :(得分:3)
它是一个零宽度标记,因为它是一个与零宽度字符串匹配的标记,即包含零个字符的字符串。字符串中的字符数有时称为宽度。如果它出现在字符串的开头,或者在任何行的开头,它只匹配空字符串,具体取决于选项。
零宽度标记的另一个例子是\b
,它匹配单词边界。
答案 2 :(得分:0)
^只是告诉你一个上下文,并且不代表任何物理角色或字符。
^ 上下文是一行的开头。
其他例子是:
$ - 行尾上下文
\ b - 字边界