【问题标题】:Splitting a string with tags, keeping delimiters [duplicate]用标签拆分字符串,保留分隔符[重复]
【发布时间】:2014-02-05 02:01:29
【问题描述】:

我需要一些帮助来编写正则表达式来拆分包含一些标签的字符串(不是真正的 HTML,我只是使用 <i><b> 标签来格式化一些文本),并保留分隔符。例如这个字符串:

<b>a bold quote:</b> this is some sample test. How <i>do</i> I do this?

将转换为:

<b>a bold quote:</b>
 this is sample text. How 
<i>do</i>
 I do this?

【问题讨论】:

标签: c# regex


【解决方案1】:

对于大多数正则表达式风格,您可以通过将拆分表达式放在捕获组中来做一些接近的事情。

new Regex("(<[^>]+>)").Split("test <b>string</b>")

产生一个包含项目的数组

test  
<b> 
string 
</b> 

(最后是一个空字符串)

如果你想找到标签里面的东西,而且它们绝对没有以任何方式嵌套,你可以这样做

new Regex("(<[^>]+>[^<]*</[^>]+>)").Split("test <b>string</b>")

=

test  
<b>string</b> 

【讨论】:

  • 我希望将打开/关闭标签保持在同一行
  • +1。 @Jason - 不清楚您评论“将打开/关闭标签保持在同一行”是什么意思......答案中没有任何内容可以添加额外的新行......
  • 谢谢史蒂夫,如果我正在寻找第二个例子
猜你喜欢
  • 1970-01-01
  • 2016-08-07
  • 2018-04-10
  • 1970-01-01
  • 2018-12-23
  • 1970-01-01
  • 2017-07-24
  • 2016-11-26
  • 1970-01-01
相关资源
最近更新 更多