tags:

views:

67

answers:

4

find all the <1></1> and <2></2> and <3></3>... in a string.

A: 

You can use the following regex: <[0-9]></[0-9]>

EDIT: To avoid that the search matches <2></3> too, you can use a sub-expression and a backreference to instantiate it: <([0-9])></\1>

BitDrink
this would match <1></2> as well, tho
David Hedlund
but this will also find `<2></3> ... `
bruce dou
+2  A: 
<(\d+)></\1>

should work. This ensures that the regex won't match <1></4> for example.

\1 is here a backreference which must match exactly the same string as the first capturing group (the (\d+) in the first angle brackets).

Joey
Should you show why using `</\1>`?
bruce dou
Should I? I don't know. But I did. By the way, http://www.regular-expressions.info/ is a great site to learn.
Joey
Thanks a lot. 1
bruce dou
+1  A: 

One regex to match any of them?

<([1-3])></\1>

Should there code allow for anything to be posted in between the > and the <? Something like this then:

<([1-3])>(.*?)</\1>
David Hedlund
A: 
<STYLE[^>]*>([\s\S]*?)<\/STYLE[^>]*>

Just replace STYLE with your tag like 1, 2 whatever.
Sarfraz