正则表达式选择除字母或数字之外的所有字符

时间:2017-06-27 02:18:37

标签: regex

我有这个正则表达式:

^[a-zA-Z0-9]

我正在尝试选择除数字或字母之外的任何字符,但是当我测试它时,只匹配第一个字符。

当我使用

[a-zA-Z0-9]

匹配是正确的数字和字母。我需要否定它,但^不起作用。

3 个答案:

答案 0 :(得分:3)

^放在表达式的开头意味着“从字符串的开头搜索”。您需要将其放在方括号内以使其成为否定。

[^a-zA-Z0-9]

答案 1 :(得分:3)

下面是regexp的快速摘要以及如何使用以下命令将查询集组合在一起。在您的情况下,将^放在[a-zA-Z0-9]内以获得所需的结果。

  .   Single character match except newline
  "." Anything in quotations marks literally
  A*  Zero or more occurrences of A
  A+  One or more occurrences of A
  A?  Zero or one occurrence of A
  A/B Match A only if followed by B
  ()  series of regexps grouped together
  []  Match any character in brackets
  [^] Do not match any character in brackets
  [-] Define range of characters to match
  ^   Match beginning of new line
  $   Match end of a line
  {}  Cardinality of pattern match set
  \   Escapes meta-characters
  |   Disjunctive matches, or operation match

答案 2 :(得分:1)

要否定你必须将^放在括号内:

[^a-zA-Z0-9]