gpt4 book ai didi

java - 如何制作Java正则表达式

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

我搜索了很多,但无法找到以下问题的完美解决方案。

我有以下代码,通过制作正则表达式并创建模式对象和匹配来从一行字符串中获取字符串值与 Matcher 的字符串。

public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("product val='321ddfgsagsdf' find way");
list.add("product val='781ertergdfv' find way");
list.add("product val='96puil$hjgh&fgh' find way"); //Here special characters in string
list.add("product val='25errgfgsagsdf' find way");
list.add("product val='562qweddfgsagsdf' find way");

for (String string : list) {
Pattern myPat = Pattern.compile(" val='(.*?)'", 2);
Matcher m = myPat.matcher(string);
if (m.find()) {
System.out.println("Found value: " + m.group(1));
} }
}

在这里,我可以获得单引号内的 ref 值。

但是,第三个值是在引用值中包含“$”和“&”,我不想以模式处理它。

我知道可以通过检查字符串,如果字符串包含特殊字符并避免它。但是,我想使用正则表达式来实现它,因为我的应用程序正在检查更大的字符串。

有什么办法可以避免java正则表达式中的这种特殊字符吗?

最佳答案

您可以像这样限制匹配(例如,字母数字,但您也可以使用字符类 [0-9a-z] 左右):

Pattern myPat = Pattern.compile(" val='(\\w+)'", Pattern.CASE_INSENSITIVE);

关于java - 如何制作Java正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39290023/

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