您可以构造RegEx来用下划线替换不需要的字符吗?

马克·A·多诺霍

我正在尝试编写一个字符串“清除”功能,该功能仅允许使用字母数字字符以及其他一些字符,例如下划线,句点和减号(破折号)。

当前,我们的函数使用源字符串的直接char迭代,但是我试图将其转换为RegEx,因为从我一直在阅读的内容来看,它更干净,性能更高(在我看来,在一次直接迭代中倒退了,但是在获得可正常运行的RegEx之前,我无法对其进行概要分析。)

对我来说,这个问题有两个方面。一,我知道以下正则表达式...

[a-zA-Z0-9]

...匹配一系列字母数字字符,但是我如何同时包括下划线,句点和减号?您是否简单地使用'\'字符将它们转义,然后将其与其他字符放在方括号之间?

其次,对于不属于匹配项的任何字符(即其他标点,如“?”),我们希望将其替换为下划线。

我的想法是改为匹配所需范围的字符,我们匹配不在所需范围内的单个字符,然后替换它。我认为正则表达式的目的是将克拉作为方括号之间的第一个字符,例如...

[^a-zA-Z0-9]

那是正确的方法吗?

杰米湖

可能最有效的方法是设置一个静态正则表达式来描述要替换的字符。

public static class StringCleaner
{    
    public static Regex invalidChars = new Regex(@"[^A-Z0-9._\-]", RegexOptions.Compiled | RegexOptions.IgnoreCase);

    public static string ReplaceInvalidChars(string input)
    {
        return invalidChars.Replace(input, "_");
    }
}

但是,如果您不希望正则表达式替换行尾和空格(如空格和制表符),则需要使用稍有不同的表达式。

public static Regex invalidChars = new Regex(@"[^A-Z0-9._\-\s]", RegexOptions.Compiled | RegexOptions.IgnoreCase);

此外,以下是必须进行转义以匹配文字字符的规则:

在用方括号表示的集合中,您必须-#]\在出现这些字符的任何位置进行转义,并且前提是字符^出现在集合的第一个位置以匹配文字字符。在集合之外,您必须转义以下字符:.$^|{}[]()+?#以匹配文字字符。

有关更多信息,请参见以下文档:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

<abbr>元素上不需要的双下划线

来自分类Dev

python3 在模式匹配下划线并去掉不需要的东西

来自分类Dev

Getter 方法不需要下划线来引用。为什么?

来自分类Dev

我可以从perl regex的单词字符集中普遍删除下划线吗?

来自分类Dev

您可以删除不需要/不需要的sakai核心工具吗?

来自分类Dev

为什么在Scala Play JSON组合器中格式组合器不需要下划线

来自分类Dev

需要用连字符替换一些下划线

来自分类Dev

用R字符串中的反斜杠下划线“ \ _”替换下划线“ _”

来自分类Dev

可以在 bcrypt 哈希中使用冒号和下划线字符吗...?

来自分类Dev

当我将鼠标移到标头的链接上时,不需要的下划线会显示在标头的链接上

来自分类Dev

在最后一个下划线之后替换字符

来自分类Dev

如何用下划线替换字符串的字母?

来自分类Dev

helm - 用下划线替换特殊字符

来自分类Dev

如何保留特殊字符而不用下划线替换?

来自分类Dev

漂亮的保持用下划线替换星号字符

来自分类Dev

sed用下划线替换连字符

来自分类Dev

在bash脚本中用下划线替换连字符

来自分类Dev

在htaccess中用连字符替换下划线

来自分类Dev

用下划线替换随机字符串序列

来自分类Dev

替换字符串并忽略下划线

来自分类Dev

用双下划线替换单个下划线

来自分类Dev

我可以在Android版式中加下划线吗?

来自分类Dev

(域名)子域中可以有下划线“ _”吗?

来自分类Dev

如何用下划线替换空白,并用字符串的空白替换下划线?

来自分类Dev

我需要一个正则表达式用连字符替换下划线

来自分类Dev

我有 csv 文件,我可以知道如何在 linux 中用下划线替换列标题中的空格吗

来自分类Dev

使用GREP / Regex为给定的URL扩展名在URL中用下划线替换下划线

来自分类Dev

Python Regex:删除下划线和破折号,除非它们在字符串替换字典中

来自分类Dev

我可以从本地Git存储库中丢弃不需要的/不需要的提交吗?

Related 相关文章

  1. 1

    <abbr>元素上不需要的双下划线

  2. 2

    python3 在模式匹配下划线并去掉不需要的东西

  3. 3

    Getter 方法不需要下划线来引用。为什么?

  4. 4

    我可以从perl regex的单词字符集中普遍删除下划线吗?

  5. 5

    您可以删除不需要/不需要的sakai核心工具吗?

  6. 6

    为什么在Scala Play JSON组合器中格式组合器不需要下划线

  7. 7

    需要用连字符替换一些下划线

  8. 8

    用R字符串中的反斜杠下划线“ \ _”替换下划线“ _”

  9. 9

    可以在 bcrypt 哈希中使用冒号和下划线字符吗...?

  10. 10

    当我将鼠标移到标头的链接上时,不需要的下划线会显示在标头的链接上

  11. 11

    在最后一个下划线之后替换字符

  12. 12

    如何用下划线替换字符串的字母?

  13. 13

    helm - 用下划线替换特殊字符

  14. 14

    如何保留特殊字符而不用下划线替换?

  15. 15

    漂亮的保持用下划线替换星号字符

  16. 16

    sed用下划线替换连字符

  17. 17

    在bash脚本中用下划线替换连字符

  18. 18

    在htaccess中用连字符替换下划线

  19. 19

    用下划线替换随机字符串序列

  20. 20

    替换字符串并忽略下划线

  21. 21

    用双下划线替换单个下划线

  22. 22

    我可以在Android版式中加下划线吗?

  23. 23

    (域名)子域中可以有下划线“ _”吗?

  24. 24

    如何用下划线替换空白,并用字符串的空白替换下划线?

  25. 25

    我需要一个正则表达式用连字符替换下划线

  26. 26

    我有 csv 文件,我可以知道如何在 linux 中用下划线替换列标题中的空格吗

  27. 27

    使用GREP / Regex为给定的URL扩展名在URL中用下划线替换下划线

  28. 28

    Python Regex:删除下划线和破折号,除非它们在字符串替换字典中

  29. 29

    我可以从本地Git存储库中丢弃不需要的/不需要的提交吗?

热门标签

归档