零宽度令牌?

时间:2010-07-18 11:46:15

标签: regex token

我想问一个关于令牌的基本问题,
在阅读关于正则表达式时,书标签插入符号(^)作为零宽度标记, 你能告诉我零宽度究竟意味着什么吗?

3 个答案:

答案 0 :(得分:6)

这意味着它匹配而不消耗任何字符。它只是一个位置断言(“必须在行的开头”)。另一个例子是零宽度前瞻和后置断言。例如,Perl正则表达式/abc(?=123)/仅匹配序列abc,如果后面跟着序列123,但它实际上不会消耗123

答案 1 :(得分:3)

它是一个零宽度标记,因为它是一个与零宽度字符串匹配的标记,即包含零个字符的字符串。字符串中的字符数有时称为宽度。如果它出现在字符串的开头,或者在任何行的开头,它只匹配空字符串,具体取决于选项。

零宽度标记的另一个例子是\b,它匹配单词边界。

答案 2 :(得分:0)

^只是告诉你一个上下文,并且不代表任何物理角色或字符。

^ 上下文是一行的开头。

其他例子是:

$ - 行尾上下文

\ b - 字边界