regex - 匹配同一组不同值的捕获组Regex
问题描述
有没有办法将组的正则表达式捕获为逻辑而不是反向引用捕获的值。
例如:以下正则表达式将捕获 IP = ABCD 的 IP 地址,其中 A、B、C、D 值的范围在 0 到 255 之间,但 A、B、C、D 不应该相等。如果我在以下代码中使用了反向引用:
Pattern ptr= Pattern.compile(
"^(?<num>[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
[.]\\k<num>[.]\\k<num>[.]\\k<num>$");
然后,D 应该等于 C 应该等于 B 应该等于 A。
我需要再次匹配正则表达式组而不是值。每次我想像下面这样匹配时,我是否必须输入相同的组,或者是否有一种简化的方法。
Pattern ptr= Pattern.compile(
"^([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
[.]([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
[.]([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
[.]([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$"
);
解决方案
推荐阅读
- sqlite - PHP7.2 Sqlite3 扩展未加载 - Debian 9
- wordpress - ACF acf_add_local_field_group 无法识别 php 中字段属性值的数组变量
- python - 我的数据中有对象。我如何查看 Python 中的内容?
- android - 活动的向上按钮导航到不同的活动
- r - 使用 R 计算每月抵押贷款的利率
- haskell - 堆栈:'hdevtools 是一个库依赖项,但由于 my-app 是构建目标,因此该包不提供所需的库。
- python - 为什么我的代码不能使日期时间对象识别时区?
- windows - 查找当前 CMD 窗口的 conhost.exe 进程的 PID
- php - 如何将函数移动到另一个文件
- react-native - 反应原生 SafeAreaView 背景图像?