[_ \ s ^“]是否表示下划线和空格但不是”(引用)在Reg
中我理解括号([])表示字符范围,而^表示但不是,但我的问题是你能说[这不是那个]还是我必须将它们分成两组括号?
答案 0 :(得分:8)
^
仅在角色类的开头才是特殊的。您甚至可以写[^^]
来说“不是插入符号”。
没有理由匹配“下划线或空格,但不是"
”,因为通过匹配下划线或空格,您已经保证不匹配"
。也许你想说的是“除了Q之外的所有大写字母”。在这种情况下,最简单的选择是使用子范围:[A-PR-Z]
。
答案 1 :(得分:1)
它表示下划线,空格,插入或双引号。正如马塞洛所指出的,如果它是括号内的第一个字符,那么它就是特殊的。
但我的问题是你能说的 [这不是那个]或者我必须这样做 将它们分成两组 括号?
你必须将它们分成两组。 [this][^that]
当然这意味着“t
,h
,i
或s
,后跟除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]
。
如果使用较大的序列,事情可能会更加混乱。