当一个字符在两个字符之间时匹配的正则表达式,但内部字符可以是外部分隔符之一

问题描述

我有一个这样的字符串:

<http://www.w3.org/1999/02/22-rdf-Syntax-ns#type>

而且我想要一个在出现这样的情况时匹配的正则表达式:

<https://example.com/code/INSTRUMENTS/AGD<1>
<https://example.com/code/INSTRUMENTS/AGD>1>

检测此类无效序列化的 IRI(类似于 URI/URL)。

我在 SO 上查看过 existing answers,但是当内部字符与外部字符之一相同时,它们似乎都不起作用。

解决方法

假设 < 总是必须用 > 结束并且它们不能“嵌套”:

(<[^>]*<|>[^<]*>)

这将检测它们是否只是关于布尔检查/验证。

如果您还想捕获完整的字符串

(<[^>]*<[^<]*>|<[^>]*>[^<]*>)

(希望我没有打错)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...