正则表达式匹配字符串中是否的整数价格和小数价格

/**
     * 匹配字符串中是否的整数价格和小数价格
     * @param str
     * @return
     */
    public static String Match_the_amount(String str) {
        String pattern[] = {"[1-9]\\d*\\u5143|[1-9]\\d*.\\d*\\u5143|0.\\d*[1-9]\\d*\\u5143|"
                + "[1-9]\\d*\\u4e07|[1-9]\\d*.\\d*\\u4e07|0.\\d*[1-9]\\d*\\u4e07|"
                + "[1-9]\\d*\\u5341\\u5143|[1-9]\\d*.\\d*\\u5341\\u5143|0.\\d*[1-9]\\d*\\u5341\\u5143|"
                + "[1-9]\\d*\\u767e\\u5143|[1-9]\\d*.\\d*\\u767e\\u5143|0.\\d*[1-9]\\d*\\u767e\\u5143|"
                + "[1-9]\\d*\\u5343\\u5143\\u000d\\u000a|[1-9]\\d*.\\d*\\u5343\\u5143\\u000d\\u000a|0.\\d*[1-9]\\d*\\u5343\\u5143\\u000d\\u000a|"
                + "[1-9]\\d*\\u4e07\\u5143\\u000d\\u000a|[1-9]\\d*.\\d*\\u4e07\\u5143\\u000d\\u000a|0.\\d*[1-9]\\d*\\u4e07\\u5143\\u000d\\u000a|"};

List<String> olist = new ArrayList<String>();
        olist = stringFun_money(str, pattern);
        double money = 0;
        for(int i = 0 ; i <olist.size();i++){
            if(Appear_String.IsExit("万",olist.get(i))){
                money = Double.parseDouble(DigitUtil.getNumber(olist.get(i)));
                money = money*10000;
            }else if(Appear_String.IsExit("万元",olist.get(i))){
                money = Double.parseDouble(DigitUtil.getNumber(olist.get(i)));
                money = money*10000;
            }else if(Appear_String.IsExit("千元",olist.get(i))){
                money = Double.parseDouble(DigitUtil.getNumber(olist.get(i)));
                money = money*1000;
            }else if(Appear_String.IsExit("百元",olist.get(i))){
                money = Double.parseDouble(DigitUtil.getNumber(olist.get(i)));
                money = money*100;
            }else if(Appear_String.IsExit("元",olist.get(i))){
                money = Double.parseDouble(DigitUtil.getNumber(olist.get(i)));
            }
        }
        return money+"";

}

原文地址:https://www.cnblogs.com/java-h/p/10584021.html

时间: 2024-11-03 23:58:39

正则表达式匹配字符串中是否的整数价格和小数价格的相关文章

踩坑正则表达式-匹配字符串中的整数和小数

首先,明白几个边界匹配器字符的含义. ^:整行字符串的开头位置 \A:整段字符串的开头位置 $:整行字符串的结尾位置 \z:整段字符串的结尾位置 关于\b和\B,官方原版的解释中是A word boundary和A non-word boundary,没有详细的解释,反正我是没看明白,自己测试一下,匹配字符串:6lo.ve,正则表达式:\B\D.结果共三处,包括l.o.v 三个字母. 那么我们是不是可以认为\B\D表示:匹配一个任意非数字的字符,并且字符的前一位是字母或者数字,此时这个单词不是边

C#正则表达式匹配字符串中的数字

今天遇到了类似的开发,记录一下(直接贴代码了): private void button1_Click(object sender, EventArgs e) { string str = "m=\"1\"+\"2\"+\"3\"+\"4\"+\"5\"+\"6\"+\"7\"";//字符串 Regex r = new Regex(@"(

使用正则表达式寻找字符串中出现了几个[***]样式的字符串

使用正则表达式寻找字符串中出现了几个[***]样式的字符串 源码如下: - (NSUInteger)analyseRX:(NSString *)string withPatternString:(NSString *)patternString { // \\[[^\\]]+\\] 用以匹配字符串中所出现的 [*] 的个数 // <[^>]+> 用以匹配字符串中所出现的 <*> 的个数 if (string == nil) { return 0; } // 正则表达式 NSR

用C#通过正则表达式截取字符串中符合条件的子字符串

仅仅作为简单的记录,不多说直接上代码(仅测试使用): private void Test() { Regex ConnoteA = new Regex("^[a-zA-Z]\\d{8}$"); Regex ConnoteAA = new Regex("^[a-zA-Z]{2}\\d{7,10}$"); Regex ConnoteAAA = new Regex("^[a-zA-Z]{3}\\d{5,9}$"); Regex ConnoteAAAA

C# 使用正则表达式去掉字符串中的数字

C# 使用正则表达式去掉字符串中的数字 // 去掉字符串中的数字public static string RemoveNumber(string key){    return System.Text.RegularExpressions.Regex.Replace(key, @"\d", "");} // 去掉字符串中的非数字public static string RemoveNotNumber(string key){    return System.Tex

java正则表达式匹配文本中想要的字符串

需求:获取一个本地文件中所有符合 $[MAKE_PACKAGE] 格式的字符串,并输出到另一个文件中. public static void main(String[] args) throws Exception { loadVar("src/cn/don9/templates/Action.txt","src/cn/don9/templateVar/SysActionVar.txt"); } public static void loadVar(String i

正则表达式,字符串中需要两个反斜杠“\\d”

这个正则表达式为什么会有两个反斜杠? "^.*?\\.(jpg|png|bmp|gif)$"上面这个正则表达式为什么有两个反斜杠呢?反斜杠点\.就能表示点.了,为什么还要在\.前面多加一个\? ----------------- 这要分两步看首先字符串中的\\被编译器解释为\         ------->  第一步,编译器将字符串转变为"正则表达式"然后作为正则表达式,\.又被正则表达式引擎解释为.   ----------------> 第二步,才

JavaScript 正则表达式:字符串中查找数字

上午师傅给我留了任务,让想想怎样用正则表达式,在字符串中找到数字,并替换数字.以下代码是在一段字符串中,用正则表达式找到数字,使用 replace() 方法,用找到的数字的两倍值替换原数字.replace() 方法的第二个参数为一个函数,返回找到数字的两倍值. <script> var str="去年是2014年,今年是2015年"; var newStr=str.replace(/\d+/g, function () { //调用方法时内部会产生 this 和 argum

Java正则表达式获得字符串中数字

下面通过一个小范例来学习如何获得一个字符串中的数字 import java.util.regex.Matcher; import java.util.regex.Pattern; public class test { public static void main(String[] args) { String strInput = "[email protected];33"; String regEx = "[^0-9]";//匹配指定范围内的数字 //Pat