什么是正则表达式以下?

时间:2011-02-10 08:09:36

标签: c# .net regex

我想提取指定的开始标记和结束标记之间的所有文本,包括标记。 例如:

Input : I am <NAME>Kai</NAME>
Text Extracted: <NAME>Kai</NAME>

它根据标签提取文本。

上述什么是Regex?

3 个答案:

答案 0 :(得分:3)

如果有问题的标签不能嵌套(假设不区分大小写):

Regex regexObj = new Regex("<NAME>(?:(?!</NAME>).)*</NAME>", RegexOptions.Singleline | RegexOptions.IgnoreCase);

请注意,这是一个快速而肮脏的解决方案,可能适合您的需求,但也可能在您的脸上爆炸(例如,如果标签出现在评论中,如果标签内有空格,如果有是标签内的任何属性等)。如果这些问题对您来说可能有问题,请使用正则表达式要求的确切规范编辑您的问题。

答案 1 :(得分:1)

这是一个接受任何标记名称的正则表达式:<(\w+)>.*?</\1>

\1反向引用组(\w+),并确保结束标记必须与开始标记具有相同的名称。

如果您要搜索特殊标记NAME,则可以使用此正则表达式:<NAME>.*?</NAME>

答案 2 :(得分:0)

http://www.regular-expressions.info/reference.html你可能会在这里找到一些有用的东西,它们有很多东西,尤其是标签等。结合这些例子来满足你的要求。