Regex,除空格或冒号外的所有非字母数字字符
我怎么能在任何地方做这个 基本上,我正在尝试匹配各种各样的字符,如符号、分号、美元符号等。这应该可以做到:Regex,除空格或冒号外的所有非字母数字字符,regex,Regex,我怎么能在任何地方做这个 基本上,我正在尝试匹配各种各样的字符,如符号、分号、美元符号等。这应该可以做到: [^a-zA-Z\d\s:] 试试这个: [^a-zA-Z0-9 :] JavaScript示例: "!@#$%* ABC def:123".replace(/[^a-zA-Z0-9 :]/g, ".") 请参阅联机示例: \d-数字类 \s-空格 a-zA-Z-匹配所有字母 ^-全部取反-因此得到-非数字字符、非空格和非冒号 尝试添加以下内容: ^[^a-zA-Z\d\s:]*
[^a-zA-Z\d\s:]
试试这个:
[^a-zA-Z0-9 :]
JavaScript示例:
"!@#$%* ABC def:123".replace(/[^a-zA-Z0-9 :]/g, ".")
请参阅联机示例:
- \d-数字类
- \s-空格
- a-zA-Z-匹配所有字母
- ^-全部取反-因此得到-非数字字符、非空格和非冒号
- 尝试添加以下内容:
^[^a-zA-Z\d\s:]*$
这对我很有用…:) 没有字母数字、空格或“u389;”
var reg = /[^\w\s)]|[_]/g;
如果您想将重音拉丁字符(例如,añ)视为普通字母(即,避免它们也匹配),您还需要在正则表达式中包含适当的Unicode范围(),因此它看起来如下所示:
/[^a-zA-Z\d\s:\u00C0-\u00FF]/g
否定下面的内容^
匹配大小写字母a-zA-Z
匹配数字\d
匹配空白(如果您只想匹配空格,请将其替换为空格)\s
匹配冒号:
匹配重音拉丁字符的Unicode范围\u00C0-\u00FF
a-zA-Z\d
替换为匹配字母、数字和下划线的\w
。如果您指的是“非字母数字字符”,请尝试使用以下方法:
var reg =/[^a-zA-Z0-9]/g //[^abc]
这个正则表达式适用于,举几个例子
从上面的说法来看,它不适用于Chrome上的JavaScript。但这里已经有了一个例子
这其中的主要部分是:
\p{L}
它表示来自任何语言的任何种类的字母`
完整正则表达式本身:
[^\w\d\s:\p{L}]
示例:在JavaScript中:
/[^\w\uuz]/g
^
否定,即选择不在以下集合中的任何内容
\w
任何单词字符(即任何字母数字字符加下划线)
\u
取消下划线,因为它被视为“word”字符
用法示例-
const nonAlphaNumericChars=/[^\w\uuz]/g
/[^a-zA-Z0-9\s\:]*/
其余的要么检查空格,而不是空格,要么在错误的位置进行否定。\w还捕获下划线-这是一个非字母数字字符AHA!我要修改一下--我不知道。我希望它对不同的引擎有不同的效果,但也可以给OP一个安全的答案。否决,因为它不会捕捉非拉丁字符,也不会捕捉“特殊”拉丁字符。这也是我在看的:)-我必须推广你的完美答案。我发现的唯一一件事是,这会删除像é或ã这样的特殊字符。我更喜欢[^\w\d\s:]。因为这不会捕获非拉丁字符,也不会捕获“特殊”拉丁字符。\d
和\s
是Perl扩展,这些扩展通常不受较旧工具的支持,如grep
,sed
,tr
,lex
,等等。否决,因为这不会捕获非拉丁字符,也不会捕获“特殊”拉丁字符。否决答案很容易,但更难向董事会提供建设性信息,例如,如何捕获非拉丁字符,也不会捕获“特殊”拉丁字符?到目前为止,由于同样的原因,你已经否决了3个答案,我认为这只是一个很小的调整。例如,我来这里是为了找到一个正则表达式,它精确地描述了这些答案中所讨论的内容。我不关心应用程序中不会使用的字符集。收益递减定律。亚伦对一个美国公民来说可能是一个“小小的调整”,但与。。。这个星球的其余部分。[^a-zA-Z0-9:][/code>可以替换为[^\w:][/code>此范围包含一些非字母数字字符(U+00D7和U+00F7),并且排除了波兰语、捷克语等非西方语言的大量有效重音字符,越南人等对正则表达式的每个部分的描述投了赞成票。这似乎重复了2011年被接受的答案。^
和$
锚定将其限制为匹配整行,*
量词表示它也匹配空行。这是这里唯一正确处理Unicode重音字母的正确方法。不幸的是,并不是所有的正则表达式引擎都支持这个功能(从3.8开始,即使Python也缺少它,尽管它的正则表达式引擎表面上是基于PCRE的)。谢谢你指出这一点。
var reg =/[^a-zA-Z0-9]/g //[^abc]