gpt4 book ai didi

java - 寻找正则表达式的建议

转载 作者:行者123 更新时间:2023-12-02 05:08:48 25 4
gpt4 key购买 nike

我正在尝试创建一个必须匹配这些模式的正则表达式:\n 700000000123

我的意思是这个“\n”+“空格”+“12位数字”

所以我尝试了:

(\\\\)(n)(\\s)(\\d{12})

或者类似的东西:

(\\\\)(n)(\\s)(\\[0-9]{12})

但是还是不行。对我来说,{12} 表示重复数字 \d[0-9],12 次?

我的想法是一个java代码,它可以检查字符串是否包含这个正则表达式:

Boolean result = false;

String string_to_match = "a random string \n 700000000123"
String re1="(\\\\)";
String re2="(n)";
String re3="(\\s)";
String re4="([0-9]{11})";

Pattern p = Pattern.compile(re1+re2+re3+re4, Pattern.CASE_INSENSITIVE | Pattern.DOTALL);

if (string_to_match.contains(p.toString()){
result = true;
}

我尝试使用:http://www.txt2re.com/来帮助我。

您对构建此正则表达式有什么建议吗?我想了解为什么目前它不起作用。

最佳答案

您需要使用 String#matches 而不是 String#contains 来匹配正则表达式。

以下应该有效:

String re1="(\\n)";    
String re2="( )";
String re3="(\\d{12})";

Pattern p = Pattern.compile(re1+re2+re3, Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
System.out.println("\n 700000000123".matches(p.pattern())); // true

或者简单地说:

System.out.println( "\n 700000000123".matches("(\n)( )(\\d{12})") ); // true

关于java - 寻找正则表达式的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27523304/

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