不是一个明确的正则表达式

时间:2017-07-18 11:25:47

标签: c# regex string

我还在学习Regex所以如果我在某处错了,请帮助我。在我的项目中,我使用简单的格式化字符串来创建RichTextBlockXAML Reader。我可以通过一些Regex模式格式化我的字符串,现在有一个问题,有时候<Hyperlink />标记中遗漏了<Paragraph>,它会抛出异常。

此示例string为:

</Paragraph> some words here (@somevaluehere1)
                <Hyperlink NavigateUri="https://somelink.com">July 14, 2017</Hyperlink>

我想要一个Regex模式来关注这场比赛:

  

如果<Hyperlink的开放标记位于</Paragraph>的结束标记之后,则捕获整个Hyperlink值的字符串,并将其替换为周围的<Paragraph>标记。< / p>

完成的字符串应该是这样的,虽然我可以使用Linq替换匹配的字符串:

</Paragraph> some words here (@somevaluehere1)
                <Paragraph><Hyperlink NavigateUri="https://somelink.com">July 14, 2017</Hyperlink></Paragraph>

我想知道是否可以使用Regex解决此问题,或者我是否需要任何其他方法。

我已经制定了Regex模式,但我知道这不是正确的答案。也许有经验的人可能会在这里提供帮助。

我提出的模式是:<\/Paragraph>(\s?)(\w+\s?\w+\s?)(\(?\@?\w+\)?)(\s?<Hyperlink)

1 个答案:

答案 0 :(得分:0)

您可以这样做:(<\/Paragraph>.*\s*)(<Hyperlink.*)然后替换为$1<Paragraph>$2</Paragraph>

工作示例:https://regex101.com/r/VfeTDd/3