相关文章推荐
String regit="[1-9]{1,2}[\u6838]"; Pattern abs = Pattern.compile(regit); String condition="32核"; Matcher mat = abs.matcher(condition); String str=""; if(mat.matches()) { str=mat.group(0).split("核")[0]; System.out.println(str); //2位数字+"G" regit="[1-9]{1,2}[Gg]"; condition="55g"; abs=Pattern.compile(regit); mat = abs.matcher(condition); if(mat.matches()) { str=mat.group(0).toUpperCase().split("G")[0]; System.out.println(str); //2位数字+"Mbps" regit="[1-9]{1,4}[Mm][Bb][Pp][Ss]"; condition="87mbps"; abs=Pattern.compile(regit); mat = abs.matcher(condition); if(mat.matches()) { str=mat.group(0).toUpperCase().split("MBPS")[0]; System.out.println(str);

输出结果:

二、注意事项

1.匹配中文字:核,需要将核,转化为unicode,即:\u6838。(转换地址: http://www.bejson.com/convert/unicode_chinese/

2.单位注意大小写,【Gg】代表匹配大写的G和小写的g

3.不建议直接截取。截取一般情况下是很容易出现异常的,万一得到的数据,只有一个mbp,直接截取了,往往会报错。但是如果先用正则表达式去判断一下,判断通过了,再去执行截取动作的话,这样成功率就比较高。

4.该改造,只针对于简单场景,如果是比较复杂的查询环境,建议使用solr等专业的搜索引擎实现。

业务场景:输入【1核】、【2g】、【3mbps】需要将数字拿到,拼接成为sql语句。一开始考虑用字符串截取,后续思考,用正则biao表达式会更好些,下面直接上代码:一、代码实现package com.test.test;import java.math.BigDecimal;import java.util.ArrayList;import java.util.Arrays;...
正则表达式概述 正则表达式,即处理 字符 串的方法,它以行为 单位 来进行 字符 串的处理操作,正则表达式通过一些特殊符号的辅助,可以让用户轻易的完成【查找、删除、替换】某特定 字符 串的处理过程。 正则表达式基本上是一种表示法,只要程序支持这种表示法,那么该程序就可以用来作为正则表达式的 字符 串处理之用。 注意:正则表达式和通配符并不一样,因为【通配符代表的是 bash 操作接口的一个功能】,但正则表达式则是一种 字符 串处理的表示方式。 基础正则表达式 语系对正则表达式会产生的影响 文件其实记录的仅有 0 和 1,我们
正则拆分 字符 串英文加可能包含小数的数字拆分(带 单位 的数值) var item = {name:"PM2.5"}; item.nameFirst = item.name.replace(/[^a-zA-Z]/g, ''); item.nameLast = /(\d+(\.\d+)?)/.exec(item.name); if (item.nameLast && item.nameLa...
public static String number(String name){ name = name.replaceAll("[^(0-9)]", ""); return name; public static void main(String[] args) { String name1=""; String name2=""; String a = "浙江YD1
常用正则表达式返回导航页正则语法正则表达式以匹配 字符 串中的数字正则表达式,提取 单位 (数字后面的部分)正则原理 Java 用法matcher的两个方法的区别 返回导航页 返回导航页 正则表达式以匹配 字符 串中的数字 String regex = "[+-]?[0-9.]+"; 正则表达式,提取 单位 (数字后面的部分) String regex = "^.*\\d(.*)$"; Java 用法 //正则表达式以匹配 字符 串中的数字 String regex = "[+-]?
Jakarta-ORO正则表达式库API下载地址:http://archive.apache.org/dist/jakarta/oro/ 1. 只允许输入汉字和逗字,并且开头和结尾不能是逗号,    (^[\u4e00-\u9fa5][\u4e00-\u9fa5 ,]*[\u4e00-\u9fa5]$)|^[\u4e00-\u9fa5]$ 2. 查找所有的药名+用量+ 单位
String aa = "-3419.66万元"; Pattern compile = Pattern.compile(“[-\\+]?([\d+]|[\d+\.\d+])+”); Matcher matcher = compile.matcher(aa); aa=matcher.group(); System.out.println(aa); 输出结果:-3419.66 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 8 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$ 9 有两位小数的正实数:^[0-9]+(.[0
 
推荐文章