简体   繁体   中英

Regex matching into multiple groups per line?

I'm trying to come up with a regex to be able to parse the following type of strings into groups.

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

My regular expression is:

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

The problem with this expression is that it seems to pull it all into 1 group:

Found 1 match:

  1. "[!PageTitle!]" href="[!SiteRoot!]" has 1 group:

      1. "PageTitle!]" href="[!SiteRoot" 

I want dont want the regex to continue...am I missing a boundary? Ideally I want it to find 2 groups ,

[!PageTitle!]

and

[!SiteRoot!]

try:

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

the + quantifier is greedy, so will match as far as possible in the line, capturing the first [ followed by the last ] in the line. +? is the non-greedy equivalent.

As an aside, I'm using Rad Software Regular Expression Designer . I like it.

似乎这样可以正常工作:)

\[!(\w+)!\]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM