我有一个这样的字符串:
Number: 2
blah one
blah two
blah three
我希望最终结果是:
blah one
blah two
blah three
如何使用正则表达式实现此目的?我使用什么模式?
只是一次更新:我知道这可以通过不使用RegEx的C#实现来实现。但是我有使用正则表达式的限制,因为这是一个内部软件,它将作为脚本运行。我可以使用grp1 = Regex.Match(,)。组并使用grp1 [0] .Value
访问它答案 0 :(得分:1)
您可以尝试使用此正则表达式匹配除以Number
^(?!Number).*
<强>更新强>
如果您输入的字符串包含此字符Number: 2\nblah one\nblah two\nblah three
,那么您可以使用以下正则表达式匹配除Number 2
以外的所有字词
(?<=\\n)([^\\]*)
答案 1 :(得分:1)
string abc = @"Number: 2
blah one
blah two
blah three".Trim();
try
{
Regex RegexObj = new Regex("^.*?\\n(?<data>(.|\\n)*)");
TextBox1.Text = RegexObj.Match(abc).Groups["data"].Value;
}
catch (ArgumentException ex)
{
// Syntax error in the regular expression
}
答案 2 :(得分:1)
如果我理解正确,你有一个由多行组成的字符串,这意味着它可以写成"Number: 2\nblah one\nblah two\nblah three"
,(\n
是换行符)。您可以在换行符中使用换行符作为常规字符。这为您提供了很多实现目标的选择,我将列出最简单的两个:
将您的字符串转换为数组,其中每个元素都是一行。
string input = "Number: 2\nblah one\nblah two\nblah three";
string[] lines = input.Split('\n');
您可以选择在程序中使用哪些行。
获取包含除数字之外的所有内容的子字符串。
string input = "Number: 2\nblah one\nblah two\nblah three";
string inputWithoutNumber = input.Substring(input.IndexOf('\n') + 1);
并在程序的其余部分使用新字符串。
希望这就是你要找的东西。
答案 3 :(得分:1)
使用您的新规范,这对我有用:
string input = "Number: 2\nblah one\nblah two\nblah three";
string patern = @"(?ms)^(?!Number: \d+$).*";
GroupCollection grps = Regex.Match(input, patern).Groups;
现在grps[0].Value
包含blah one\nblah two\nblah three
。