为什么Dollar $无法显示正则表达式字符串的结尾?

时间:2019-05-14 10:04:08

标签: java regex

我的文件名看起来像这样:

d3a16040-3aa9-4581-b054-79aea9ec5626_new_baby_kittens.jpg

我已经成功将文件名更改为此:

new_baby_kittens.jpg

但是如果我使用它,为什么我的正则表达式不起作用?:

^[^_]+_$

我知道如果我使用此命令,我的正则表达式将起作用:

^[^_]+_

我想使用^$来澄清字符串的开头和结尾。我该怎么办?

我在这里测试过正则表达式:https://regexr.com/4du5t

以及Java代码:

String fileName = new String("d3a16040-3aa9-4581-b054-79aea9ec5626_new_baby_kittens.jpg");
System.out.println(fileName.replaceAll("^[^_]+_", "")); // This shows me what I want, because it outputs: new_baby_kittens.jpg
System.out.println(fileName.replaceAll("^[^_]+_$", "")); // This shows me: d3a16040-3aa9-4581-b054-79aea9ec5626_new_baby_kittens.jpg

我已经阅读了链接的问题。但是我也找不到那里。我还阅读了有关多行模式的信息,但事实并非如此。我在此链接上了解了多行模式:

http://www.rexegg.com/regex-anchors.html#dollar

0 个答案:

没有答案