正则表达式每行匹配多个组?

时间:2010-03-08 01:03:46

标签: c# regex

我正在尝试使用正则表达式来将以下类型的字符串解析为组。

<link rel="alternate" type="application/rss+xml" title="[!PageTitle!]" href="[!SiteRoot!]/feed.xml" />

我的正则表达式是:

\[\!(.+)\!\]

这个表达式的问题在于它似乎把它全部拉成了一组:

找到1个匹配项:

  1. “[!PageTitle!]”href =“[!SiteRoot!]”有1组:

     1. "PageTitle!]" href="[!SiteRoot"
    
  2. 我想不要让正则表达式继续......我错过了一个边界吗?理想情况下,我希望找到2组

    [!PageTitle!]

    [!SiteRoot!]

2 个答案:

答案 0 :(得分:1)

尝试:

\[\!(.+?)\!\]

+量词是贪婪的,所以在行中尽可能匹配,捕获行中的第一个[后跟最后一个]。 +?是非贪婪的等价物。

顺便说一下,我正在使用Rad Software Regular Expression Designer。我喜欢它。

答案 1 :(得分:0)

似乎这样可行:)

\[!(\w+)!\]