正则表达式匹配最后一个<之后、第一个>之前的所有字符
匹配最后一个<后到第一个>前的正则方案
直接用这两个正则表达式就能满足需求:
.*<([^>]+)>
或者更严谨的版本(确保匹配的<是字符串中最后出现的<):
(?<=<)([^>]+)(?=>[^<]*$)
说明
第一个版本
.*<([^>]+)>:.*<贪婪匹配所有内容直到最后一个<出现的位置([^>]+)捕获<之后到第一个>之间的所有非>字符,这就是目标内容- 测试你的示例字符串,捕获组会得到
test4
第二个版本
(?<=<)([^>]+)(?=>[^<]*$):(?<=<)正向断言,确保当前位置前面是<([^>]+)捕获目标内容(?=>[^<]*$)正向断言,确保当前位置后面的>之后直到字符串结尾都没有其他<,彻底保证这是最后一个<对应的内容
验证示例
拿你的示例字符串展开后:test1 <test2 <test3> <<test4> test5>>
两个正则都会精准捕获到test4,符合期望。
内容的提问来源于stack exchange,提问作者LorneCash
相关产品推荐
相关产品推荐

