我是正则表达式的新手。在探索它时,我发现正则表达式[。^;]和[;]的结果是相同的,我试图找出解释。 字符串是Hello; World 据我所知,^是为了否定所以不应该跳过它的下一个字符';'在这种情况下?
答案 0 :(得分:2)
[.^;]
没有按照您的预期执行,因为^
被视为文字^
而不是否定。
否定它在字符类中的第一个位置使用^
:
[^.;]
[.^;]
成为与文字.
或^
或;
[^.;]
成为一个否定字符类,匹配除了文字之外的任何内容.
或;
[;]
也是一个与文字;
匹配的字符类答案 1 :(得分:1)
^
仅对字符组进行否定。
[.^;]
将匹配组中三个字符的任何(文字句号,插入符号或分号)。另一方面,[^.;]
将匹配组中的任何不(任何字母,任何数字,除文字句点或分号之外的任何其他内容)。
答案 2 :(得分:0)
它们不一样。
克拉^
仅表示在字符类中第一个字符时的否定。
此正则表达式[.^;]
表示"字面点或克拉或分号"
此正则表达式[;]
表示"分号"。