gpt4 book ai didi

c# - 对 RegEx 帮助不大

转载 作者:太空宇宙 更新时间:2023-11-03 16:30:45 25 4
gpt4 key购买 nike

我必须解析一个相当复杂的字符串来“评估”字符串中包含的函数。我只有一个函数可以“提取”,它有这个特定的语法:

LOC_POS(number;number);

此字符串包含在如下 HTML 页面中:

something here LOC_POS(45;9);Some string or html content <br> here LOC_POS(45.21312;9.1232123);LOC_POS(45,32;9,12); some other string...

(数字是坐标,此 RegEx 可识别该函数:

LOC_POS\([ 0-9.,]+;[ 0-9.,]+\);

如何在 C# 中提取所有 block ?我想要的结果是一个包含(每项一行)的数组

something here 
LOC_POS(45;9);
Some string or html content <br> here
LOC_POS(45.21312;9.1232123);
LOC_POS(45,32;9,12);
some other string...

我知道如何用普通的字符串解析来做到这一点..

最佳答案

这是我想出的。

        string str = @"something here LOC_POS(45;9);Some string or html content <br> here LOC_POS(45.21312;9.1232123);LOC_POS(45,32;9,12);  some other string...";
Regex test = new Regex(@"(LOC_POS\([\d\.,]+;[\d\.,]+\);)");
string[] segments = test.Split(str);
StringBuilder sb = new StringBuilder();
foreach (string s in segments)
if(!String.IsNullOrEmpty(s))
sb.AppendLine(s);
textBox1.Text = sb.ToString();

输出结果

something here 
LOC_POS(45;9);
Some string or html content <br> here
LOC_POS(45.21312;9.1232123);
LOC_POS(45,32;9,12);
some other string...

正则表达式找到 LOC_POS 的每个实例,拆分导致它将字符串分成多个段,然后您使用 stringbuilder 重建字符串以在正确的位置获取所有新行。如果您确实需要它们,您还可以使用它来捕获 LOC block 的各个实例。围绕整个事情的捕获组是为了确保 LOC block 确实得到定位,而不是被忽略。

关于c# - 对 RegEx 帮助不大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10852962/

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