【问题】
希望实现java正则表达式中的替换。
但是不知道如何使用。
【解决过程】
1.参考了官网的语法:
Java 6: java.util.regex.Pattern
结果还是不会用.
2.后来参考:
虽然没有很好的演示如何使用.
但是让我看到了,原来是对应获得了matcher后,然后可以调用对应的replaceFirst等函数的.
3.另外也通过,对于NetBeans中,Ctrl+鼠标点击对应的
import java.util.regex.Matcher
中的Matcher:
而找到了官网文档中的,除了replaceFirst之外的,其他函数:
比如replaceAll:
如此,就可以自己去写代码了.
然后把对应的相关代码写出来了.
4.其中,涉及到替换中,想要使用named group的问题,也已解决:
【已解决】Java的正则表达式java.util.regex中的命名的组(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("^.+/(?<filenamePart>.+)$"); 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用起来最爽。