首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

正则表达式怎么匹配

2013-09-05 
正则表达式如何匹配我想提取一窜数字之后的那个字符比如String strMoney 48000万String regex [0-9_

正则表达式如何匹配
我想提取一窜数字之后的那个字符
比如


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


[解决办法]
引用:
Quote: 引用:

数字前没汉字的话,直接去第一个汉字不就是数字后的第一个汉字了啊。。
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());
 }
}

应该说是我的例子有问题
我应该写“数字48000万数字”……
我只想取“万”
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));
 }
}

热点排行