Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex,除空格或冒号外的所有非字母数字字符_Regex - Fatal编程技术网

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
        匹配空白(如果您只想匹配空格,请将其替换为空格)
      • 匹配冒号
      • \u00C0-\u00FF
        匹配重音拉丁字符的Unicode范围
      注意。Unicode范围匹配可能不适用于所有的正则表达式引擎,但上述方法肯定适用于Javascript(如在Codepen上看到的)

      nb2。如果您不介意匹配下划线,可以将
      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]