gpt4 book ai didi

java - 正则表达式匹配以两个固定字母开头的任何单词

转载 作者:行者123 更新时间:2023-11-29 05:45:46 25 4
gpt4 key购买 nike

我需要匹配任何以两个固定字母开头的单词的正则表达式,例如 COCCEXFR :

  1. COYEAR/NUMBER 例如。 : CO2001/123
  2. CCYEAR/NUMBER 例如。 : CC2001/123
  3. EXYEAR/NUMBER 例如。 : EX2001/123
  4. FRYEAR/NUMBER 例如。 : FR2001/123

我创建了一种格式:^[C,E,F][O,C,X,R][0-9]{4}(/{1})[0-9]{1 ,8}

此格式 ^[C,E,F][O,C,X,R] 表示输入的值应以 C、E 或 F 开头,然后是 O、C 中的任何单词, X 和 R 是允许的。

但是我有一些规则,比如

1)There must be O or C after C
2)There must be X after E
3)There must be R after F

不允许其他组合。

示例测试示例:

public class TestRegEx {

public static void main(String[] args) {

String value1="CC2007/67";

String value2="CO2001/123";
String value3="CC2001/123";
String value4="EX2001/123";
String value5="FR2001/123";

boolean value1isVerify=value5.matches("^[C,E,F][O,C,X,R][0-9]{4}(/{1})[0-9]{1,8}");
System.out.println("isVerify--->"+value1isVerify);
}

}

最佳答案

看看这是否适合你

public static void main(String[] args) {
String str = "^(C[OC]|E[X]|F[R])[0-9]{4}(/{1})[0-9]{1,8}$";

System.out.println("CC2007/67".matches(str));
System.out.println("CO2001/123".matches(str));
System.out.println("CC2001/123".matches(str));
System.out.println("EX2001/123".matches(str));
System.out.println("VR2001/123".matches(str));

}

我如何应用您的规则:

  • C后必须有O或C --> ^C[OC]
  • E后面必须有X --> ^E[X]
  • F后面必须有R --> ^F[R]

因为只有第一个有多个后续字符选项,所以可以这样重写:"^(C[OC]|EX|FR)[0-9]{4}(/{1})[0-9]{1,8}$";

但我决定离开小组,以防万一您想添加其他可能的组合,这样事情会变得更容易。您可以使用任何您觉得更舒服的版本。

而且我没有碰你模式的其余部分,因为我不知道你在匹配什么。但我相信它可以像这样缩短:

"^(C[OC]|EX|FR)\\d{4}/\\d{1,8}$"

关于java - 正则表达式匹配以两个固定字母开头的任何单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15903922/

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