扫码关注官方订阅号
有两种格式的数据都在同一个文件下,格式如下{1234}[{4567}]怎么通过Java去掉这些数据的前后字符,只保留1234和4567
走同样的路,发现不同的人生
只有数字的话,用正则提取
楼上说的很对~给你写个小例子:
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { private static final Pattern DIGITS_PATTERN = Pattern.compile("\\d+"); public static String getDigits(String str) { Matcher matcher = DIGITS_PATTERN.matcher(str); if (matcher.find()) { return matcher.group(); } return ""; } public static void main(String[] args) throws Exception { String str1 = "{1234}"; String str2 = "[{4567}]"; System.out.println(getDigits(str1)); System.out.println(getDigits(str2)); } }
正则表达,两种处理思路:1、去除所有非数字字符,使用正则表达式:\D2、提取数字字符,使用正则表达式:\d3、若字符中间有非数字字符,可能考虑用两边去除非数字字符的方式,从两头遍历检查。(推荐)测试代码如下:
String str = "[{45dfd,<>67}]"; Pattern pattern = Pattern.compile("^\\D+|\\D+$"); Matcher matcher = pattern.matcher(str); str = matcher.replaceAll(""); System.out.println(str);
注:可以根据你的需求定制,是指定匹配“[]”“{}”或者其他字符,或者预定义字符集,总之能够避免匹配中间字符
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
只有数字的话,用正则提取
楼上说的很对~
给你写个小例子:
正则表达,两种处理思路:
1、去除所有非数字字符,使用正则表达式:\D
2、提取数字字符,使用正则表达式:\d
3、若字符中间有非数字字符,可能考虑用两边去除非数字字符的方式,从两头遍历检查。(推荐)
测试代码如下:
注:可以根据你的需求定制,是指定匹配“[]”“{}”或者其他字符,或者预定义字符集,总之能够避免匹配中间字符