【问题标题】:Replace certain occurrences of a characters in string替换字符串中某些出现的字符
【发布时间】:2020-05-17 09:19:05
【问题描述】:

我想替换字符串中某些出现的字符,不知道如何用正则表达式实现。

originalString =  '=(IF(OR(L4=NULL,L4=""),0,L4)'

我想用字母 M 替换它:

finalString = '=(IF(OR(M4=NULL,M4=""),0,M4)'

当使用如下所示的 split 或 replace 时,即使是 'NULL' 中的 L 也会被替换。

finalString = originalString.split('L').join('M')

任何帮助将不胜感激。

【问题讨论】:

  • 基本上,每次 L 后跟数字时,您都需要替换它,对吧? .replace(/L(?=\d)/gi, 'M') 似乎符合要求。

标签: javascript regex string typescript


【解决方案1】:

M 位于单词开头且后跟至少一位数字时,您似乎想将M 替换为L。如果是这样,您可以使用\b(“字边界”)断言和\d(一个数字)围绕M 来说明您要替换哪个特定的Ms。您可以将 \d 包装在前瞻断言 ((?=...)) 中,因此它实际上不是匹配的一部分。要在整个字符串中执行此操作,您需要“全局”标志 (g)。所以把所有这些放在一起:/\bM(?=\d)/

const originalString =  '=(IF(OR(L4=NULL,L4=""),0,L4)';
const updated = originalString.replace(/\bM(?=\d)/g, "L");
console.log(updated);

如果您还想将m 替换为L,请添加i(不区分大小写)标志。

【讨论】:

    猜你喜欢
    • 2018-08-23
    • 1970-01-01
    • 2023-03-04
    • 2012-03-30
    • 2011-02-21
    • 2014-12-13
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多