【问题】
希望实现java正则表达式中的替换。
但是不知道如何使用。
【解决过程】
1.参考了官网的语法:
结果还是不会用.
2.后来参考:
虽然没有很好的演示如何使用.
但是让我看到了,原来是对应获得了matcher后,然后可以调用对应的replaceFirst等函数的.
3.另外也通过,对于NetBeans中,Ctrl+鼠标点击对应的
import java.util.regex.Matcher
中的Matcher:
而找到了官网文档中的,除了replaceFirst之外的,其他函数:
比如replaceAll:
如此,就可以自己去写代码了.
然后把对应的相关代码写出来了.
4.其中,涉及到替换中,想要使用named group的问题,也已解决:
5.最终,可以使用的代码是:/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package retainfilename;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
*
* @author Administrator
*/
public class RetainFilename {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String filenameStr = "aa/haha.exe";
//named group only support after Java 7
//here is my java version:
//Java: 1.7.0_09; Java HotSpot(TM) 64-Bit Server VM 23.5-b02
Pattern filenameP = Pattern.compile("^.+/(?.+)$");
Matcher filenameMatcher = filenameP.matcher(filenameStr);
boolean foundFilename = filenameMatcher.matches();
System.out.println(filenameMatcher);
System.out.println(foundFilename);
String onlyFilename = filenameMatcher.replaceFirst("${filenamePart}");
System.out.println(onlyFilename);
}
}
【总结】
Java中,感觉库的使用方面,还是很不方便。
即使对于想要通过正则表达式的替换,都搞得这么麻烦。
还是Python用起来最爽。