如何使用正则表达式返回字符串的所有行,或者返回第一个数字之后的所有文本
本文关键字:返回 第一个 数字 之后 文本 或者 正则表达式 何使用 字符串 | 更新日期: 2023-09-27 18:12:01
我有一个这样的字符串:
Number: 2
blah one
blah two
blah three
我希望最终结果是:
blah one
blah two
blah three
我如何使用正则表达式实现这一点?我用什么模式?
只是一个更新:我知道这可以通过不使用RegEx的c#实现来实现。但我有使用正则表达式的限制,因为这是一个内部软件,这将作为一个脚本运行。我可以使用grp1 = Regex.Match(,)。并使用grp1[0]访问它。值
使用你们的新规格,我是这样做的:
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
如果我理解正确,您有一个由多行组成的字符串,这意味着它可以写成"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);
希望这就是你要找的
您可以尝试这个正则表达式来匹配除了以Number
^(?!Number).*
演示更新:
如果你输入的字符串包含Number: 2'nblah one'nblah two'nblah three
字符,那么你可以使用下面的正则表达式来匹配除Number 2
以外的所有单词
(?<=''n)([^'']*)
演示 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
}