非常简单的正则表达式替换问题

时间:2009-11-27 14:51:04

标签: regex

这是我的文字

Remediation2009November Remediation2009December

这是我为找到它们而开发的正则表达式

Remediation2009(十一月|腊)

我不确定如何开发一个正则表达式,这样当我执行替换时,我可以简单地在我的匹配结尾添加一个单词

Remediation2009NovemberCompany2 Remediation2009DecemberCompany2

由于

5 个答案:

答案 0 :(得分:3)

因为你没有提到什么语言 - 这是一个C#例子

public Regex MyRegex = new Regex(
      "Remediation2009(November|December)\\s+",
    RegexOptions.IgnoreCase
    | RegexOptions.CultureInvariant
    | RegexOptions.IgnorePatternWhitespace
    | RegexOptions.Compiled
    );


// This is the replacement string
public string MyRegexReplace = 
      "Remediation2009($1)Company2 ";


//// Replace the matched text in the InputText using the replacement pattern
string result = MyRegex.Replace(InputText,MyRegexReplace);

希望这有帮助, 最好的祝福, 汤姆。

答案 1 :(得分:1)

以下是使用C#的示例,如果您指定使用的语言,我可以使用您的特定语言提供解决方案。

using System;
using System.Text.RegularExpressions;

namespace ConsoleApplication4
{
   class Program
   {
       static void Main(string[] args)
       {
        var input = "Remediation2009December";
        var regex = new Regex("Remediation2009(November|December)");
        var output = regex.Replace(input, "$0Company2");

        Console.WriteLine(output);
        Console.ReadLine();
      }
   }
}

答案 2 :(得分:0)

S / Remediation2009(十一月|九月)/ Remedation2009 \ 1Company2 /

答案 3 :(得分:0)

在Python中

import re
text="Remediation2009November Remediation2009December"
re.sub("(Remediation2009(?:November|December))","\\1Company2",text)

会做

答案 4 :(得分:0)

为什么需要正则表达式?在Python中,只需在构建的字符串函数中使用它就可以轻松地进行字符串操作

>>> s="Remediation2009November Remediation2009December".split()
>>> for n,word in enumerate(s.split()):
...   if word.endswith("November") or word.endswith("December"):
...     s[n]=word+"Company2"
>>> print ' '.join(s)
Remediation2009NovemberCompany2 Remediation2009DecemberCompany2