求匹配特定条件的Regex:含<或>但排除先<后>的情况
符合要求的正则表达式解决方案
可以使用以下正则表达式满足你的需求:
(?=.*[<>])(?!.*<.*>)
逻辑解释
这个正则通过两个预查条件组合实现规则:
(?=.*[<>]):正向预查,确保字符串中至少包含<或>其中一个,对应规则1的判定前提(?!.*<.*>):负向预查,排除所有存在<且后续出现>的情况,这直接过滤掉规则2中需要返回false的场景,同时保留了规则3(>在前<在后)和规则1(仅含单一符号)的合法场景
测试验证
匹配(返回true)的场景:
- 仅含
<:I have a < here - 仅含
>:I have a > here >在前<在后:I am using >JAVA< regex.
不匹配(返回false)的场景:
<在前>在后:I am using '<'JAVA'>' regex.- 无任何角括号:
No special characters here
内容的提问来源于stack exchange,提问作者RBP
相关产品推荐
相关产品推荐

