我需要一个正则表达式来匹配看起来像<A>
,<BB>
,<CCC>
但不是<ABC>
,<aaa>
,<>
的标签。所以标签必须由相同的大写字母组成,重复。我试过了<[A-Z]+>
,但这不起作用。当然我可以写一些像<(A+|B+|C+|...)>
之类的东西,但我想知道是否有一个更优雅的解决方案。
答案 0 :(得分:8)
你可以使用这样的东西(see this on rubular.com):
<([A-Z])\1*>
这使用捕获组和反向引用。基本上是:
(pattern)
“捕获”匹配\n
,其中n
是组号,以“返回”该组匹配的内容所以在这种情况下:
([A-Z])
,紧跟在<
\1*
,即同一个字母中的零个或多个