gpt4 book ai didi

Java 正则表达式生成模式

转载 作者:行者123 更新时间:2023-11-30 11:03:30 25 4
gpt4 key购买 nike

我尝试生成我的 Pattern,以便能够通过 UI 中的 JTextfield 设置/添加/编辑它对于 variant2,它工作正常,但如果我尝试添加不止一个模式 (variant1),它就会停止工作。

你能告诉我我做错了什么吗?

这里是代码的相关部分:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TestSomeStaff {

String getPattern(String s) {
String p = "";
for (int i = 0; i < s.length(); i++) {
if (Character.isLetter(s.charAt(i))) {
p += "\\" + "w";
} else if (Character.isDigit(s.charAt(i))) {
p += "\\" + "d";
} else {
p += s.charAt(i);
}
}
return p;
}

public static void main(String[] args) {
String code1 = "11XXX08_XX000XX__XX11";
String code2 = "11XXX08_XX000X__XX11";
TestSomeStaff t = new TestSomeStaff();

// String p="("+t.getPattern(code1) + ") | ("+t.getPattern(code2)+")";
// //variant1
String p = t.getPattern(code1); // variant 2
System.out.println(t.getPattern(code1));
Pattern pat = Pattern.compile(p);

Matcher m = pat.matcher(code1);
System.out.println("pattern:" + m.pattern());

if (m.find()) {
System.out.println(m.group());
}
}
}

var1 输出:

\d\d\w\w\w\d\d_\w\w\d\d\d\w\w__\w\w\d\d
pattern:(\d\d\w\w\w\d\d_\w\w\d\d\d\w\w__\w\w\d\d) | (\d\d\w\w\w\d\d_\w\w\d\d\d\w__\w\w\d\d)

var2 输出:

\d\d\w\w\w\d\d_\w\w\d\d\d\w\w__\w\w\d\d
pattern:\d\d\w\w\w\d\d_\w\w\d\d\d\w\w__\w\w\d\d
11XXX08_XX000XX__XX11

最佳答案

variant1 模式中的空格很重要。如果您删除空格,则该变体将起作用。

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

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