使用正则表达式查找一行并在上面插入一行

时间:2015-12-05 18:52:05

标签: c# regex

我的网页上有一个多行文字框。我正在粘贴下面显示的文档内容,我想找到一个图案并在其上面插入一行文字。

              RANDOM TEXT Title 123 AB
Data 01
              ABC RAND Title 345 CB
Data 02

有没有办法找到所有标题字词并在其上方插入一行文字?如下所示?

I WANT TO SPLIT HERE
              RANDOM TEXT Title 123 AB
Data 01

I WANT TO SPLIT HERE
                ABC RAND Title 345 CB
Data 02

2 个答案:

答案 0 :(得分:1)

搜索:
(\n|^)[^\n]+Title[^\n]+

\n =新行
^ =字符串/文件的开头
[^x] =不是x
[^x]+ =很多不是x' s | =替代


替换为:
I WANT TO SPLIT HERE\n$0

$0 =锚定到匹配的文本(0就是一切)

要想出这些事情,请尝试使用:

std::enable_if<>

答案 1 :(得分:1)

如果你真的只搜索一个单词&#34; Title&#34;,你甚至不需要regex

using System.Linq;
. . . . .  .
List<string> lines = myTb.Split(new Char[] { "\n", "\r" }, StringSplitOptions.None);
int index;
while (index < lines.Length)
{
     if (lines[i].IndexOf(" title ", StringComparison.OrdinalIgnoreCase) > -1)
     {
         lines.Insert(index, "my insert text into new line");
         // we just added new line, so current line is index + 1 
         index++; 
     }

    index++;

}
myTb.Lines = string.Join(lines, "\n\r");

注意 - 不能使用for循环,因为集合正在变异。而这[最有可能]比正则表达更快。试试这个ant time vs regex选项,并用时间结果评论我的答案。感谢