gpt4 book ai didi

java 正则表达式 $ 元字符

转载 作者:行者123 更新时间:2023-12-02 07:28:48 26 4
gpt4 key购买 nike

我是 java 正则表达式的新手。我在 Docs 中看到了这个:

$ The end of a line

但是当我尝试这个片段时:

String str = "firstline\r\nsecondline";
String regex = "$";
System.out.println(str.replaceAll(regex, "*"));

我猜结果会是:

firstline*
secondline*

但我看到了这个结果:

firstline
secondline*

好像$只匹配一个String的结尾。那么为什么文档说它匹配“行尾”呢?

最佳答案

您必须启用多行模式,然后 $ 将同时匹配一行的结尾和输入的结尾:

http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html#MULTILINE

即:

Pattern.compile("$",Pattern.MULTILINE);

你也可以使用标志表达式(?m),即:

Pattern.compile("(?m)$");

你引用的 oracle 文档在这里真的很不精确。模式类的文档(上面的链接)更加精确,应该作为 Java RegEx 的引用。

关于java 正则表达式 $ 元字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24413186/

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