gpt4 book ai didi

需要 Java 正则表达式

转载 作者:行者123 更新时间:2023-12-01 13:06:07 25 4
gpt4 key购买 nike

我需要的正则表达式仅对以下模式失败,而对其他所有模式都通过。

  1. RXXXXXXXXXX(X 为数字)

  2. XXX.XXX.XXX.XXX(IP 地址)

我有正则表达式的基本知识,但不知道如何实现这一目标。

对于第一部分,我知道如何使用正则表达式不以 R 开头,但如何确保它允许除 10 之外的任意位数还不确定。

^[^R][0-9]{10}$ - 它将执行 !R 的操作,但不确定如何完成非 10 位数字的部分。

最佳答案

好吧,只需定义一个正则表达式:

Pattern p = Pattern.compile("R[0-9]{10} ((0|1|)[0-9]{1,2}|2([0-4][0-9]|5[0-5]))(\\.((0|1|)[0-9]{1,2}|2([0-4][0-9]|5[0-5]))){3}");
Matcher m = p.matcher(theStringToMatch);
if(!m.matches()) {
//do something, the test didn't pass thus ok
}

或者jdoodle .

<小时/>

编辑:

由于您实际上想要过滤掉两种可能的模式,因此将模式更改为:

Pattern p = Pattern.compile("(R[0-9]{10})|(((0|1|)[0-9]{1,2}|2([0-4][0-9]|5[0-5]))(\\.((0|1|)[0-9]{1,2}|2([0-4][0-9]|5[0-5]))){3})");

如果要匹配整个字符串(以便字符串以模式开头和结尾,请将 ^ 放在 from 中,将 $ 放在模式末尾.

关于需要 Java 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23256787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com