0

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

Adrian
  • 6,013
  • 10
  • 47
  • 68
Bruce Dou
  • 4,673
  • 10
  • 37
  • 56
  • Before you go too far down this road, please read this question: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – Greg Hewgill Dec 08 '09 at 10:18

4 Answers4

2
<(\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
  • 344,408
  • 85
  • 689
  • 683
  • 2
    Should I? I don't know. But I did. By the way, http://www.regular-expressions.info/ is a great site to learn. – Joey Dec 08 '09 at 10:18
1

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
  • 128,221
  • 31
  • 203
  • 222
0

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
  • 1,185
  • 1
  • 18
  • 24
0
<STYLE[^>]*>([\s\S]*?)<\/STYLE[^>]*>

Just replace STYLE with your tag like 1, 2 whatever.
Sarfraz
  • 377,238
  • 77
  • 533
  • 578