如何在#之间搜索字符,但不要在组合中使用#<在C#中

时间:2014-08-14 12:34:18

标签: c# regex

我需要这个正则表达式的帮助。 我有字符串:

  

text1#text2&#60&#61#text3#56&*()_!

我必须: text1text2&#60&#61text356&*()_!

如何在#之间搜索字符,但不要在组合&#60&#61中使用#(模式:&#\d+) 正则表达式将在C#中使用。

现在我使用这种模式.*?(?=#)|.*?$

2 个答案:

答案 0 :(得分:2)

根据#分隔字符串,前面有数字。

string value = "text1#text2&#60&#61#text3#56&*()_!";
string[] lines = Regex.Split(value, @"(?<=\d)#");
foreach (string line in lines) {
Console.WriteLine(line);
}

IDEONE

答案 1 :(得分:0)

非常感谢您的回答,但我找到了最好的方法

string value = "text1#text2&#60&#61#text3#56&*()_!";
string splitPattern = @"(?<!&)#|#(?!\d+)";

List<string> values = Regex.Split(value, splitPattern).Where(s => s != String.Empty); 

enter image description here

enter image description here

enter image description here