gpt4 book ai didi

ios - 正则表达式 - 匹配替换时区分大小写

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:15:43 24 4
gpt4 key购买 nike

我试图通过基于源模式进行区分大小写的替换来减少正则表达式比较的次数。

例如,如果我想检查是否出现'cl'、'co'、'ca' 或 'cu' 并将其替换为 'kl'、'ko'、'ka' 或 'ku' 我会使用这些:

    pattern = "c([loau])" - replace with "k$1"

但是对大写的“C”做同样的事情,我在搜索中使用大写的 C 复制测试,因为替换需要以“K”开头

    pattern = "C([loau])" - replace with "K$1"

我当然可以使用以下方法找到所有出现的情况:

    pattern = "[Cc]([loau])"

但问题是,我不确定替换应该是哪种情况(大写或小写“k”)。根据匹配模式的大小写,替换字符串的形式会是什么样子?

最佳答案

假设您正在使用这样的模式:

pattern = (?<prefix>.*)(?<toChange>[Cc])(?<rest>[loau])(?<suffix>.*)

您可以简单地构建一个包含(伪代码)的新字符串:

replacementString = ${prefix} + changedCharConvertedToString + ${rest} + ${suffix}

其中 changedCharConvertedToString 是捕获的 ${toChange} 组转换为 char 添加了 8 并转换回字符串。这是因为在 ASCII 字符中,字符分配了各自的十进制值,并且相同的小写字母和大写字母之间的距离始终相同。如果将 8 添加到字符 'C',您将得到一个 'K'。与小的 'c' 类似,您将得到一个 'k'。如果您需要其他字母组合,请在 Google 上搜索“ASCII 表”。

关于ios - 正则表达式 - 匹配替换时区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29693005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com