gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 10:48:41 28 4
gpt4 key购买 nike

因此,我创建了以下正则表达式,它从我的字符串中捕获我需要的一切:

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

字符串遵循以下模式:

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

我正在 try catch :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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com