正则表达式,除了空格或冒号之外的每个非字母数字字符

时间:2011-05-19 03:50:05

标签: regex

我似乎无法弄清楚如何在任何地方做这个。有什么帮助吗?

基本上我试图匹配各种杂项字符,如&符号,分号,美元符号等。

10 个答案:

答案 0 :(得分:210)

[^a-zA-Z\d\s:]
  • \ d - 数字课程
  • \ s - 空白
  • a-zA-Z - 匹配所有字母
  • ^ - 全部否定它们 - 所以你得到 - 非数字字符,非空格和非冒号

答案 1 :(得分:33)

这应该这样做:[^a-zA-Z\d\s:] 希望它有所帮助!

答案 2 :(得分:13)

试试这个

[^a-zA-Z0-9 :]

JS示例:

"!@#$%* ABC def:123".replace(/[^a-zA-Z0-9 :]/g, ".")

参见在线示例:

http://jsfiddle.net/vhMy8/

答案 3 :(得分:12)

如果您想将重音拉丁字符(例如àÑ)视为普通字母(即避免匹配它们),您还需要在正则表达式中包含适当的Unicode范围(\u00C0-\u00FF) ,所以它看起来像这样:

/[^a-zA-Z\d\s:\u00C0-\u00FF]/g
  • ^否定后面的内容
  • a-zA-Z匹配大写和小写字母
  • \d匹配数字
  • \s匹配空格(如果您只想匹配空格,请将其替换为空格)
  • :匹配冒号
  • \u00C0-\u00FF匹配重音拉丁字符的Unicode范围。

NB。 Unicode范围匹配可能不适用于所有正则表达式引擎,但上面肯定适用于Javascript(如Codepen上的this pen所示)。

NB2。如果您对匹配下划线不感兴趣,可以将a-zA-Z\d替换为\w,其中包含字母,数字和下划线。

答案 4 :(得分:2)

如果您的意思是“非字母数字字符”,请尝试使用此

var reg =/[^a-zA-Z0-9]/g         //[^abc] 

答案 5 :(得分:1)

没有字母数字,空格或' _'。

var reg = /[^\w\s)]|[_]/g;

答案 6 :(得分:1)

此正则表达式仅适用于C#,PCRE和Golang。

RegexBuddy所说,它不适用于Chrome上的JavaScript。 但是这里已经有一个例子了。

这主要部分是:

\p{L}

代表\p{L}\p{Letter}来自任何语言的任何字母。


完整的正则表达式本身: [^\w\d\s:\p{L}]

示例: https://regex101.com/r/K59PrA/2

答案 7 :(得分:0)

尝试添加此

^[^a-zA-Z\d\s:]*$

这对我有用...... :)

答案 8 :(得分:0)

"0_0 (: /-\ :) 0-0".replace(/[^a-zA-Z0-9 :]/g,"")

对我有用。然而,

replace(/[^a-zA-Z/d :]/g,"")

不适合我。

答案 9 :(得分:0)

在JavaScript中:

/[^\w_]/g

^取反,即在以下集合中选择 not 中的任何内容

\w任何单词字符(即任何字母数字字符加下划线)

_对下划线取反,因为它被认为是“单词”字符

用法示例-const nonAlphaNumericChars = /[^\w_]/g;