gpt4 book ai didi

Java正则表达式点

转载 作者:行者123 更新时间:2023-11-29 03:22:59 28 4
gpt4 key购买 nike

我对 Java 模式匹配和正则表达式感到困惑。我的理解是正则表达式

“*”表示匹配前面的字符任意次数

“。”对于任何字符

    String regex = ".ing*";  //line 1
Pattern pattern = Pattern.compile(regex);
String [] tests = {"ing", "ring", "trying", "running", "beings"};
for(String test: tests)
{
Matcher m = pattern.matcher(test);
if(m.matches())
{
System.out.println(test + " matches " + regex);
}
}

在上面的程序中,输出是“ring matches .ing”。没关系,我明白了,但是当我改成第 1 行时,比如

            String regex = "*ing*";  //line 1      Exception occur

String regex = ".*ing*"; //line 1 OK

我想知道为什么会出现不以.开头的异常。 (点)

非常感谢。

最佳答案

该字符串中的 * 之前没有前导字符。如果在 asterisks 之前没有前面的字符,那么您必须将其转义。

String regex = "\\*ing*";
^^

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

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