[^]
表示否定空字符类。但我想指定一个仅包含字符“ ^”的字符类。可能吗?谢谢。
答案 0 :(得分:2)
要回答所问的问题,是的,有*。对于字符类中的元字符,您可以像在正则表达式中转义任何其他元字符一样对元字符进行转义:
[\^]
请注意,这通常不是必需的,因为在字符类中被视为元字符的字符很少。只是\
,]
和^
。
但是,由于您只在字符类中指定了一个字符,因此无需括号就可以执行相同的操作。
\^
此外,仅当字符类中的^
符号是字符类中的第一个字符时才需要转义。如果您还有其他字符,只需在其他任何地方添加^
,它就会按预期运行
[a-z^]
以上内容将匹配任何小写的拉丁字母或^
。
*
此规则例外。如果您使用的是POSIX或GNU正则表达式引擎,则不能将字符类中的元字符转义,因为\
不被视为元字符。
可以使用反斜杠转义,或将它们放在不具有特殊含义的位置,以包括右括号],脱字号^和连字符。 POSIX和GNU风格是一个例外。他们将字符类中的反斜杠视为文字字符。因此,有了这些风格,您就无法在字符类中转义任何内容。
答案 1 :(得分:0)
如果要创建仅包含插入符号的字符类,则可能最直接的两种方法是:
[\^]
[\x5e]
来引用插入符号(如果您以编程方式构建字符类并且担心其他元字符(例如反斜杠,连字符或方括号),则可能更倾向于使用插入符 li>
但是仅包含一个字符的字符类可能是不必要的。您可以在课程之外使用插入符号:\^
。
仅在课程开始时才有必要在字符类中转义插入符号,它会否定类,但如果它是课程中的唯一字符,显然这无济于事。