正则表达式 - 单词边界
regex - word boundaries
我有两个正则表达式来识别两种不同的词。它们是:
- 标识符:[_a-zA-Z][_0-9A-Za-z]*
- 对于数字:(\d*\.\d+)(([eE][-+]?\d+))|\d+
我想知道为什么单词 12aaa 被视为 2 个单词,即数字 (12) 后跟标识符 (aaa)。
我的目的是将单词 12aaa 视为错误的标识符。我该怎么做?
在正则表达式的两端添加一个 \b
(匹配词边界)。这将迫使它们仅在单词边界内匹配。因此 12aaa
将不再匹配为数字或标识符。
此外,正如我在评论中提到的,您应该在 .在您的号码正则表达式中。否则它将匹配 4a4.
我有两个正则表达式来识别两种不同的词。它们是:
- 标识符:[_a-zA-Z][_0-9A-Za-z]*
- 对于数字:(\d*\.\d+)(([eE][-+]?\d+))|\d+
我想知道为什么单词 12aaa 被视为 2 个单词,即数字 (12) 后跟标识符 (aaa)。
我的目的是将单词 12aaa 视为错误的标识符。我该怎么做?
在正则表达式的两端添加一个 \b
(匹配词边界)。这将迫使它们仅在单词边界内匹配。因此 12aaa
将不再匹配为数字或标识符。
此外,正如我在评论中提到的,您应该在 .在您的号码正则表达式中。否则它将匹配 4a4.