c# - 在正则表达式匹配中保留换行符,c#

标签 c# regex

因此,我创建了以下正则表达式,它可以从字符串中捕获我需要的所有内容:

  const string tag = ":59";
  var result = Regex.Split(message, String.Format(":{0}[^:]?:*[^:]*", tag),RegexOptions.Multiline);

字符串遵循以下模式:

:59A:/sometext\n
somemore text\n
:71A:somemore text

我试图捕捉 :59A: 和 :71A: 之间的所有内容 - 但这并不是一成不变的,因为 :71A: 可能是其他东西。因此,为什么我使用 [^:]

编辑

所以,只是为了明确我的要求。我有一个文件(字符串),它被传递到 C# 方法中,该方法应该仅返回参数标记中指定的那些值。例如,如果文件(字符串)包含以下标签:

:20: :21: :59A: :71A:

如果我传入 59,那么我只需要返回标签开头 :59A: 和下一个标签开头之间的所有内容,在本例中为 :71A:,但也可能是其他内容。

最佳答案

您可以使用以下代码来匹配您的需要:

string input = ":59A:/sometext\nsomemore text\n:71A:somemore text";
string pattern = "(?<=:[^:]+:)[^:]+\n";

var m = Regex.Match(input, pattern, RegexOptions.Singleline).Value;

如果你想使用你的标签常量,你可以使用这段代码

const string tag = ":59";
string input = ":59A:/sometext\nsomemore text\n:71A:somemore text";
string pattern = String.Format("(?<={0}[^:]*:)[^:]+\n", tag);

var m = Regex.Match(input, pattern, RegexOptions.Singleline).Value;

关于c# - 在正则表达式匹配中保留换行符,c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22347795/

相关文章:

c# - 如何将声音的音量从听不见(0db)增加到响亮(60db)

javascript - jQuery 的 parseJSON 中的正则表达式测试返回 false - 为什么?

javascript - 正则表达式根据给定条件检查密码验证?

c# - 为什么替代项的顺序在正则表达式中很重要?

php - 如何解析PHP中类似于BBCode的伪代码?

c# - 即使在 javascript 中设置了值之后, <asp.HiddenField> 值在代码隐藏中仍为空

c# - 在 VS 中检查时,有什么方法可以使对象的属性以特定顺序出现?

c# - 括号中带有(属性)的方法参数

c# - Webdriver 如何等到元素在 webdriver C# 中可点击

php - 检查 MongoDB 中是否存在具有字段值的文档的最佳做法是什么?