试图理解.NET正则表达式

时间:2011-09-15 15:34:09

标签: c# .net regex

我一直在阅读关于.NET正则表达式的大量阅读,并且我已经开发了一个正则表达式,我无法理解。

(src|href)="\w+|(\w+/)+

我读这个正则表达式的方式:

  1. 完全匹配“src”或“href”
  2. 后跟=“
  3. 后跟匹配1个或多个单词字符([a-zA-Z0-9_])或一个或多个(一个或多个单词字符后跟/)
  4. 这是为了匹配'src =“Folder','src =”folder /','href =“Folder / SubFolder /'等。

    输入:

      

    <!DOCTYPE html>
      < html xmlns =“http://www.w3.org/1999/xhtml”>
      < HEAD>

    使用此正则表达式,使用此输入,有一个匹配。

      

    组织/ 1999 /

    任何人都可以解释一下吗?整个字符串中没有引用Src或href,如何才能匹配?

3 个答案:

答案 0 :(得分:6)

这里发生的是|正在将正则表达式分成两个完全独立的条件。即选择:(src|href)="\w+ OR (\w+/)+匹配第二位:

org/1999/

在您的情况下,您可能需要将最后一部分放在括号中,以明确交替|所指的内容:

(src|href)="(\w+|(\w+/)+)

顺便说一下,我使用Expresso来帮助解决这个问题。

答案 1 :(得分:3)

例如,尝试Expresso。它有一个很好的“解释”功能。

答案 2 :(得分:2)

试试此应用http://www.regexbuddy.com/。您可以将RegEx风格设置为.NET,它有一个很好的选项卡,可以分解您的RegEx的每个元素。