【问题标题】:Regex splitting [closed]正则表达式拆分[关闭]
【发布时间】:2015-11-24 11:58:03
【问题描述】:

我想实现将文本块拆分为子字符串的功能。 拆分的条件是每个块必须以行首的数字开头。

例如:

  1. 迈克病了,但他去上学了
  2. 蜜蜂在我家附近筑巢
  3. StackOverflow 很有帮助。

这是我的代码:

 private static string[]SplitStringOnBlocks(string text)
    {
        string pattern = @"^d";
        Regex rgx = new Regex(pattern);
        return rgx.Split(text);              

    }

但它不会拆分文本

【问题讨论】:

  • 它返回的是什么?整个字符串/文本?
  • 返回整个字符串
  • 确实如此。这是一个编号的问题列表
  • 一个数字与\d匹配:@"^\d"。你需要的输出是什么?
  • 从接受的答案来看,OP 代码中只有一个错字 - 我建议关闭这个问题。

标签: c# regex split


【解决方案1】:

你的模式是错误的。您需要将d 转义为\d,并且需要启用多行。

正确的模式: ^\d

将正则表达式的创建更改为: new Regex(pattern, RegexOptions.Multiline)

【讨论】:

  • 我不相信这会“按预期”工作。但是,预期的行为尚未定义:)
  • @vortexture:它为什么有效?它删除了数字。请查看this demo
  • @stribizhev 如果 vortexture 不想将数字分开,他可以用换行符分开。我认为(但我不确定)将它们分开是可以的。
  • @Verarind:我投票结束了这个问题,因为所有未来的读者都不清楚,并且 - 从你的答案被接受的事实来看 - OP 代码中只是一个错字。
猜你喜欢
  • 2019-12-12
  • 1970-01-01
  • 1970-01-01
  • 2018-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多