gpt4 book ai didi

java - Java 中的正则表达式是否默认使用 ^ 和 $ 字符锚定?

转载 作者:IT老高 更新时间:2023-10-28 20:59:30 77 4
gpt4 key购买 nike

根据我对正则表达式的理解,字符串“00###”必须与“[0-9]”匹配,但不能与“^[0-9]$”匹配。但它不适用于 Java 正则表达式。

在对此问题进行一些调查后,我发现了以下信息 (http://www.wellho.net/solutions/java-regular-expressions-in-java.html):

It might appear that Java regular expressions are default anchored with both a ^ and $ character.

我们能否确定所有版本的 JDK 都是如此?并且可以关闭此模式(即使用 ^ 和 $ 禁用默认锚定)?

最佳答案

正如您链接到的文章所解释的,这取决于您调用的函数。如果要默认添加 ^ 和 $,请使用 String#matchesMatcher#matches .如果您不想这样,请使用 Matcher#find方法来代替。

import java.util.regex.*;

public class Example
{
public static void main(String[] args)
{
System.out.println("Matches: " + "abc".matches("a+"));

Matcher matcher = Pattern.compile("a+").matcher("abc");
System.out.println("Find: " + matcher.find());
}
}

输出:

Matches: false
Find: true

关于java - Java 中的正则表达式是否默认使用 ^ 和 $ 字符锚定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1894624/

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