首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >纠正Regex设置或表达式本身

纠正Regex设置或表达式本身
EN

Stack Overflow用户
提问于 2021-02-19 05:43:32
回答 3查看 58关注 0票数 0

我有这样的短信:

"2008/00419 Bir kompres r AR ELİK ANONİMŞİRKETİ2008/00438 Su altıcanlıün nakilıDENİZSAN DENİZCİLİK ANONİMŞİRKETİ2008/03300 YAĞLI AĞARTMA TOPRA TOPRA KAZANIM IN GER KAZANIM NTEM M MAYSA Y NTEM MAYSA YA SANAY RKET ANON M pompas“

我需要把这个文本分成“数字+文本”记录。如下所示:

ŞİRKETİ

  • 2008/00438
  1. 2008/00419 Bir kompres r AR ELİK ANONİM Suİıcanlıün nakil pompasıİZSAN DENİZCİLİK ANONİMİYAĞLI AĞARTMA TOPRAKLARINDAN EL ARTMA TOPRA ININ IN GERĞKAZANIM NTEM NTEM NTEM YA SANAY SANAY ANON M RKET ANON*

IN VE

我使用这样的正则表达式:

代码语言:javascript
复制
Regex splitRegex = new Regex(@"(?>(\d{4}\/\d{5}))");

List<string> notes = splitRegex.Split(text).ToList();

,但我得到的结果是:

帮助我选择正确的Regex设置或表达式本身。谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-02-19 06:28:00

问题解决了!使用如下正则表达式:

Regex splitRegex =新Regex(@"(?=\d{4}/\d{5})",RegexOptions.Multiline);

票数 0
EN

Stack Overflow用户

发布于 2021-02-19 06:27:03

没有对此进行测试,但我认为您只是想在regex模式中包含非数字部分?

代码语言:javascript
复制
Regex splitRegex = new Regex(@"(?x) # ignore whitespace and comments
    (?<record> # define capturing group
        \d{4} # match 4 digits
        \/ # match forward-slash
        \d{5} # match 5 digits
        [^\d]+ # match following text that is not a digit
    )
");

如果我还记得用它正确地调用Split(),将导致在每个匹配之间有一个空字符串的数组。即。您要分割的“分隔符”是您希望捕获的文本。所以有点尴尬。

我不认为这是一个“分裂”的问题。用这种方式调用Regex.Matches()并简单地枚举结果就更清楚了。伪码:

代码语言:javascript
复制
foreach (Match m in regex.Matches(inputText))
{
    string record = m.Groups["record"].Value;
    //...
}
票数 0
EN

Stack Overflow用户

发布于 2021-02-19 06:39:41

你可以只使用拆分函数。

代码语言:javascript
复制
// Split text(assigned str), separated by a space followed by "2" 
            string[] recordList = str.Split(" 2");
            Console.WriteLine(recordList[0]);
            Console.WriteLine("2" + recordList[1]);
            Console.WriteLine("2" + recordList[2]);

这将返回您想要的输出,并将工作的任何其他记录,只要是2000年的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66272326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档