import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.regex.Matcher; import java.util.regex.Pattern; public class MatchUtil { private static final Logger logger= LoggerFactory.getLogger(MatchUtil.class); public static void main(String[] args) { String text = "吾辈既务斯业009090,便当3333专心用功"; String reg1 = "[\\d]"; String reg2 = "[^\\d]"; Pattern p = Pattern.compile(reg1); Matcher matcher = p.matcher(text); logger.info("将所有数字替换,即提取字符串中非数字,替换后:{}",matcher.replaceAll("")); p=Pattern.compile(reg2); logger.info("将所有非数字替换,即提取字符串中数字,替换后:{}",p.matcher(text).replaceAll("")); }
}
结果:
[main] INFO MatchUtil - 将所有数字替换,即提取字符串中非数字,替换后:吾辈既务斯业,便当专心用功 [main] INFO MatchUtil - 将所有非数字替换,即提取字符串中数字,替换后:0090903333
本文介绍了一个Java程序示例,使用正则表达式从文本中提取数字与非数字字符。通过两个不同的正则表达式,实现了分别提取字符串中的所有数字和所有非数字内容,并展示了如何利用`Pattern`和`Matcher`类实现这一功能。
1429

被折叠的 条评论
为什么被折叠?



