正则表达式替换多种模式

时间:2018-06-26 07:01:53

标签: c# regex

我是编程新手,需要一些帮助;-) 如何在from dateutil import parser t1 = parser.parse("2018-06-26T05:43:05Z") t2 = parser.parse("2018-06-26T05:43:55Z") t1 > t2 # False t1 < t2 # True 中替换多个模式

示例:

string

想要结果:

  

这是一个测试 XXX ,另外一个测试adakljd jaklsdj XXX sakldjasdkj XXX

但是我得到了

  

这是一个测试 AAA ,另外一个测试adakljd jaklsdj BBB sakldjasdkj XXX

提前寻求帮助!

3 个答案:

答案 0 :(得分:1)

您不需要正则表达式,只需使用Replace

string input = "this is a test AAA one more test adakljd jaklsdj BBB sakldjasdkj CCC";
string replaced = input.Replace("AAA", "XXX").Replace("BBB", "XXX")...

答案 1 :(得分:1)

我建议将所有模式的部分(check(): IEmpdatatype[] { const res: IEmpdatatype[] = []; let monthStr: string = this.tMonth.toString(); let dayStr: string = this.tDay.toString(); if ( monthStr.length === 1 ) { monthStr = '0' + monthStr; } if ( dayStr.length === 1) { dayStr = '0' + dayStr; } for (let i = 0; i < this.empData.length; i++) { const DOBsplit: string[] = this.empData[i].DOB.split('-'); if ( DOBsplit[1] === monthStr && DOBsplit[2] === dayStr) { // Push match to result res.push(this.empData[i]); } } console.log(res); return res; } } )与 | (“或”)组合在一起:

"AAA", ..., "CCC"

结果:

  string input = "this is a test AAA one more test adakljd jaklsdj BBB sakldjasdkj CCC";
  string[] pattern = { "AAA", "BBB", "CCC" };
  string replacement = "XXX";

  string result = Regex.Replace(
    input, 
    string.Join("|", pattern.Select(item => $"(?:{item})")), 
    replacement);

  Console.WriteLine(result);

我已将每个this is a test XXX one more test adakljd jaklsdj XXX sakldjasdkj XXX 之类的模式部分变成了一个 BBB,以防模式部分内部包含(?:BBB)

答案 2 :(得分:0)

您将在整个循环中反复覆盖settings.base.migrate = False变量,似乎也没有必要,只需使用result变量

input