[_ \ s ^“]是指下划线和空格而不是”(引用)在Regex中?

时间:2010-04-04 05:55:00

标签: regex

[_ \ s ^“]是否表示下划线和空格但不是”(引用)在Reg

我理解括号([])表示字符范围,而^表示但不是,但我的问题是你能说[这不是那个]还是我必须将它们分成两组括号?

4 个答案:

答案 0 :(得分:8)

^仅在角色类的开头才是特殊的。您甚至可以写[^^]来说“不是插入符号”。

没有理由匹配“下划线或空格,但不是"”,因为通过匹配下划线或空格,您已经保证不匹配"。也许你想说的是“除了Q之外的所有大写字母”。在这种情况下,最简单的选择是使用子范围:[A-PR-Z]

答案 1 :(得分:1)

它表示下划线,空格,插入或双引号。正如马塞洛所指出的,如果它是括号内的第一个字符,那么它就是特殊的。

  

但我的问题是你能说的   [这不是那个]或者我必须这样做   将它们分成两组   括号?

你必须将它们分成两组。 [this][^that]当然这意味着“this,后跟除t之外的任何字符,{{ 1}},或h

答案 2 :(得分:0)

不,^只有在第一个字符类中才有其否定效果。 例如:[abc^]匹配“^” 此外,字符类末尾的-表示“匹配-”:[\w-]匹配“abc-def

答案 3 :(得分:0)

正如其他人所指出的那样^只表示否定,如果它是集合中的第一个字符。

表达A,B或C而不是DEF的[ABC^DEF]构造没有意义。如果是A,B或C,则它不能是D,E或F,因此表达式的一部分是多余的。如果两个块中都存在字符,则可以通过删除“this”部分中也存在于“that”部分中的任何字符来简化它:[this^notthat] => [is]

如果使用较大的序列,事情可能会更加混乱。