gpt4 book ai didi

Java正则表达式匹配器不匹配

转载 作者:行者123 更新时间:2023-12-02 11:34:07 27 4
gpt4 key购买 nike

我不明白为什么结果总是错误的

package test;

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

public class Test {

public static void main(String args[]) {
String pattern = "place (//d+);(//d+);(//d+);(//d+)";

// Create a Pattern object
Pattern r = Pattern.compile(pattern);

Matcher matcher1 = r.matcher("place 66;33;65;87");

System.out.println(matcher1.matches());

}

}

最佳答案

正则表达式和 java 字符串文字中的转义字符都是反斜杠,而不是正斜杠。您想要在正则表达式中获取 \d (将 d 转义为 d 数字)。您必须在字符串文字中使用另一个反斜杠对其进行转义,因此您将获得 \\d

"place (\\d+);(\\d+);(\\d+);(\\d+)"

它匹配并且有效。

<小时/>

您当然可以采取积极的态度,尝试编写一个正则表达式替换,将正则表达式中的所有 // 替换为 \ ...如下所示:

String pattern = "place (//d+);(//d+);(//d+);(//d+)".replaceAll("//", "\\\\");

关于Java正则表达式匹配器不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49072785/

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