求匹配尖括号<>间字母(a-zA-Z)的有效正则表达式
匹配尖括号间字母的正则解决方案
正确正则表达式
如果你需要匹配尖括号<和>之间的纯字母序列(a-zA-Z),可以使用:
<([a-zA-Z]+)>
你之前的正则为什么失效
你的原正则\<:([a-zA-Z]+)\>有两个关键问题:
- 错误使用了HTML实体转义写法:
\<是HTML中表示<的方式,但正则表达式里直接写<即可,不需要这种转义; - 多了一个不必要的冒号
::这会强制要求<和字母之间必须有冒号才能匹配,完全不符合你的需求。
示例演示
待匹配文本:
Welcome <Stack>! Let's test <Overflow> and skip <123Test> <Test_123>
预期匹配结果(捕获组提取的内容):
- 第一个匹配项:
Stack - 第二个匹配项:
Overflow <123Test>和<Test_123>不会被匹配,因为内容包含非字母字符
如果你的需求是提取尖括号内所有字母(即使中间夹杂其他字符),可以使用下面的正则来捕获所有字母片段:
<[^>]*?([a-zA-Z]+)[^>]*>
针对上面的文本,这个正则会捕获Stack、Overflow、Test、Test。
内容的提问来源于stack exchange,提问作者floober
相关产品推荐
相关产品推荐

