正则表达式如何匹配
我想提取一窜数字之后的那个字符
比如
String strMoney ="48000万";
String regex ="[0-9_._,]+(.*?)";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(strMoney);
if(m.find()){
moneyText = m.group(0);
moneyLevel = m.group(1);
}
提取出来的
moneyLevel 是空值 我想moneyLevel 赋值为“万”
不知道我的正则表达式哪里写的有问题,请高手指点!
回帖即给分! java 正则 正则表达式
[解决办法]
public static void main(String[] args) {
String strMoney ="48054354545400万212121";
String regex ="[0-9_._,]+(.*?)+[\u4e00-\u9fa5]+[0-9_._,]+(.*?)";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(strMoney);
String moneyText="";
String moneyLevel="";
if(m.find()){
moneyText = m.group(0);
moneyLevel = m.group(1);
}
System.out.println(moneyLevel+"========="+moneyText);
}
[解决办法]
public static void main(String[] args) {
String strMoney ="48054354545400万";
String regex ="[0-9_._,]+(.*?)+[\u4e00-\u9fa5]";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(strMoney);
String moneyText="";
String moneyLevel="";
if(m.find()){
moneyText = m.group(0);
moneyLevel = m.group(1);
}
System.out.println(moneyLevel+"========="+moneyText);
}
[解决办法]
String strMoney = "48000万";
String regex = "([0-9_._,]+
[解决办法]
[a-zA-Z]+)";
String[] str = strMoney.split(regex);
System.out.println(str[1]);
[解决办法]
public static void main(String[] args) throws Exception {
String strMoney = "48000万";
String regex = "\\D+";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(strMoney);
if (m.find()) {
System.out.println(m.group(0));
}
}[解决办法]
需求说完!!
[解决办法]
[0-9_._,]+(.*?)表示数字 + 后面为数字的
[\u4e00-\u9fa5]+(.*?) 表示汉字+后面为汉字的
要第一个 不加(.*?) 就可以了
[解决办法]
public static void main(String[] args) {
String strMoney ="48054354545400万玩";
String regex ="[\u4e00-\u9fa5]";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(strMoney);
String moneyText="";
String moneyLevel="";
if(m.find()){
moneyText = m.group(0);
// moneyLevel = m.group(1);
}
System.out.println(moneyLevel+"========="+moneyText);
}
[解决办法]
直接说取第一个汉字不就行了,,还取数字干什么
[解决办法]
数字前没汉字的话,直接去第一个汉字不就是数字后的第一个汉字了啊。。
public static void main(String[] args) throws Exception {
String strMoney = "48000万数字";
Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
Matcher matcher = p.matcher(strMoney);
if (matcher.find()) {
System.out.println(matcher.group());
}
}
[解决办法]
moneyText 就是第一个汉字啊? 或者取出4800万 后使用 subString
[解决办法]
public static void main(String[] args) throws Exception {
String strMoney = "啊数aa字48000万sxx数字";
Pattern pattern = Pattern.compile("(\\D*)(\\d*)([\u4e00-\u9fa5]).*");
Matcher matcher = pattern.matcher(strMoney);
if (matcher.find()) {
System.out.println(matcher.group(3));
}
}