【问题标题】:Replacing all special characters with a Regular Expression用正则表达式替换所有特殊字符
【发布时间】:2009-12-11 13:47:46
【问题描述】:

我正在尝试替换正则表达式中的所有德语特殊字符。 字符是ä ö ü ß

【问题讨论】:

  • @SilentGhost:这些字符的“典型”替换分别是“ae”、“oe”、“ue”和“ss”或“sz”。 @basit74:你也不打算处理大写的元音变音吗?
  • 哦,还有一个问题:我们在谈论哪种编程语言?
  • 那么正则表达式可能不是这里最好的工具
  • 您是否有包含这些字符的正则表达式,或者您希望使用正则表达式来替换字符串中的这些字符?如果是后者,则使用正则表达式进行模式匹配,而不是替换。如果您需要更换某些东西,我们需要知道您希望使用哪些工具来进行更换。
  • 您能否以问题的形式提出这个问题,或者您需要精神上的支持吗?

标签: regex internationalization


【解决方案1】:

我认为你不能用一个正则表达式完成所有 4(或 7)个替换。想来,用 4 个(或 7 个)正则表达式来做这件事相当容易。

更新

此外,正如 Mic 所指出的,正则表达式可以成为解决方案的一部分,但需要成为某种替换机制的一部分。这里需要更多输入。

【讨论】:

    【解决方案2】:
    /ä/ae/
    

    如果 Carl 对您所说的替代品的看法是正确的,那就可以了;但这里并不真正需要正则表达式,可以使用简单的字符串函数/方法来完成。

    当然,您需要为每个字符编写新的正则表达式。

    如果您想将它们全部替换为单个字符,例如问号 (?),您可以使用以下正则表达式:

    /[äöüß]/?/ig
    

    【讨论】:

    • 就像我和 Mic 所说的,这取决于语言。我们需要知道这里使用的是什么语言。
    • 什么取决于语言?是否能够编写能够进行智能替换的正则表达式?
    • 不,替换的确切代码。问题是如何,没有更多信息就无法准确发布。
    • 我认为 how 次要于 what。 OP 没有给出任何关于他实际在做什么的迹象。
    【解决方案3】:

    Regxr可以帮你写一个。 试试这个:

    正则表达式:/\bäöüß\b/gi

    模式:\bäöüß\b

    根据您所处的语言或情况,有多种方法可以应用实际替换。

    【讨论】:

      【解决方案4】:

      如果你想用不同的字符替换这些字符中的每一个,你需要四个正则表达式:

      /ä/X1/
      /ö/X2/
      /ü/X3/
      /ß/X4/
      

      其中 X1-X4 是四个替换字符

      或者,如果您想用单个字符替换这些字符的任何出现:

      /[äöüß]/X/
      

      其中 X 是替换字符。

      确切的正则表达式语法可能会有所不同,具体取决于编程语言。

      【讨论】:

        猜你喜欢
        • 2014-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-13
        • 2018-01-14
        相关资源
        最近更新 更多