精华内容
下载资源
问答
  • 正则表达式之匹配数字范围,正则表达式匹配数字最近有个需求就是根据产品编号批量下架产品,需要下架日期为16-31号之间的产品,比如编号为B201607280023匹配表达式如下:^201607(1[6-9]|2[0-9]|3[0-1]).+逻辑很简单,...

    正则表达式之匹配数字范围,正则表达式匹配数字

    最近有个需求就是根据产品编号批量下架产品,需要下架日期为16-31号之间的产品,

    比如编号为B201607280023匹配表达式如下:

    ^201607(1[6-9]|2[0-9]|3[0-1]).+

    逻辑很简单,如果是必须是1或2或3开头,如果是1开头则后面范围为6-9,如果是2开头则为0-9,如果为3开头则为0-1,因为7月份到31号

    同理,如果要匹配前半月的数据则是:

    ^B201607(0[0-9]|1[1-5]).+

    php正则表达式限制数字个数

    如何写个正则表达式,只有4个数字才能匹配比如1234可以匹配,12345或者12数字个数不是4个的不能匹配?

    \d{4}我试过不可以,12345超过5个数字的也匹配上了,不可以

    ^[0-9]{4}$可以,改变问题:为什么\d{4}不行能??

    \d{4} 这个意思其实是可以匹配至少4个连续的数字,就是说123肯定匹配不上,但是像1234,12345,1234abc这种,只要其中有4个数字连续的,都可以匹配上。如果想卡死只匹配四个数字,那么得加上开始和结束符 ^\d{4}$

    正则表达式匹配1-255之间的正整数

    $p = '/^(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|[1-9])$/';

    for($i=1; $i<=260; $i++)

    printf("%4d %d\n", $i, preg_match($p, $i));

    楼大体上是对的,但是没有加上单词分隔符

    测试数据:

    11 123 301 9 10 31 30 33

    匹配出:

    11

    123

    30

    1

    9

    10

    31

    30

    33

    可见这与预期不符,因为该正则把301拆成30与1了

    正确如下:

    \b25[0-5]\b|\b2[0-4]\d\b|\b1\d\d\b|\b[1-9]\d\b|\b[1-9]\b

    如果还是不懂的朋友建议查看这篇文章:https://www.jb51.net/tools/zhengze.html

    展开全文
  • 在java中怎么利用正则表达式匹配数字发布时间:2020-12-03 17:47:12来源:亿速云阅读:58作者:Leah在java中怎么利用正则表达式匹配数字?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想...

    在java中怎么利用正则表达式匹配数字

    发布时间:2020-12-03 17:47:12

    来源:亿速云

    阅读:58

    作者:Leah

    在java中怎么利用正则表达式匹配数字?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

    用于匹配的正则表达式为 :([1-9]\d*\.?\d*)|(0\.\d*[1-9])(

    [1-9] :匹配1~9的数字;

    \d :匹配数字,包括0~9;

    * :紧跟在 \d 之后,表明可以匹配零个及多个数字;

    \. :匹配小数点;

    ? :紧跟在 \. 之后,表明可以匹配零个或一个小数点;

    0 :匹配一个数字0;

    )

    其中的 [1-9]\d*\.?\d* 用以匹配诸如:1、23、34.0、56.78 之类的非负的整数和浮点数;

    其中的 0\.\d*[1-9] 用以匹配诸如:0.1、0.23、0.405 之类的非负浮点数;

    private List

    GetTmpFieldsList(List

    FieldsList,String tmptableName,String IndexName) {

    List

    maps = new ArrayList<>();

    for(String field :FieldsList){

    //必须包含传入的标识符,同时要包含数字

    if(field.toLowerCase().contains(tmptableName.toLowerCase())){

    FieldList e = new FieldList();

    String [] fieldArray = field.split("\\.");//带数字的string

    field = field.replaceAll("\\_?\\d+", ""); //去掉下划线加数字 得有效的物理名

    String [] fieldArray2 = field.split("\\."); //不带数字的string

    Pattern p = Pattern.compile("\\d+"); //得到字符串中的数字

    Matcher m = p.matcher(fieldArray[1]);

    if(m.find()){

    int key = Integer.parseInt(m.group());

    e.setCaseValue(key);

    if(StringUtils.isEqual(fieldArray2[1], IndexName)){ //for BAT203

    e.setField("CHECK_POSITION"); //項目物理名

    }else{

    e.setField(fieldArray2[1]); //項目物理名

    }

    e.setFieldName(fieldArray[1]); //項目物理名別名

    maps.add(e);

    }

    /**else{ 只有后面带数字的才可以

    if(StringUtils.isEqual(fieldArray2[1],IndexName)){ //for BAT203

    e.setField("CHECK_POSITION"); //項目物理名

    }else{

    e.setField(fieldArray2[1]);

    }

    e.setFieldName(fieldArray[1]);

    maps.add(e);

    }**/

    }

    }

    //Add ACE商品マスタ.更新フラグ

    return maps;

    }

    补充知识:关于fasterxml-jackson发生Can not deserialize instance of异常原因验证

    这两天线上有大量的java.lang.IllegalArgumentException: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token

    at [Source: N/A; line: -1, column: -1]错误发生。

    有经验的人一看,就知道是对象属性转换发生异常了。为了把这个错误的根本原因找到。

    只能上代码模拟了。

    /**

    * Created by changle on 17/1/9.

    */

    @Slf4j

    public class JSONTest {

    public static void main(String[] args) {

    testAtoB();

    //testAtoB() 发生:Can not deserialize instance of com.test.JSONTest$Hobby out of START_ARRAY token

    testBtoA();

    //testBtoA() 发生:Can not deserialize instance of java.util.ArrayList out of START_OBJECT token

    }

    public static void testAtoB(){

    List hobbies = new ArrayList<>();

    Random random = new Random();

    for(int i=0;i<3;i++){

    Hobby hobby = new Hobby(random.nextInt(),"测试名称","测试类型",random.nextInt(100));

    hobbies.add(hobby);

    }

    StudentA studentA = new StudentA();

    studentA.setAge(23);

    studentA.setFromCity(true);

    studentA.setMoney(3000);

    studentA.setName("张三");

    studentA.setHobbies(hobbies);

    try {

    String str = JSON.json(studentA);

    log.info("str={}",str);

    //list转换单个projo

    StudentB studentB = JsonUtil.jsonObject(str, StudentB.class);

    log.info("studentB.name:{}",studentB.getName());

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    public static void testBtoA(){

    Random random = new Random();

    Hobby hobby = new Hobby(random.nextInt(), "测试名称", "测试类型", random.nextInt(100));

    StudentB studentB2 = new StudentB();

    studentB2.setAge(23);

    studentB2.setFromCity(true);

    studentB2.setMoney(3000);

    studentB2.setName("张三");

    studentB2.setHobbies(hobby);

    String str2 = null;

    try {

    str2 = JSON.json(studentB2);

    //单个projo转换list

    StudentA studentA2 = JsonUtil.jsonObject(str2, StudentA.class);

    log.info("studentB.name:{}", studentA2 == null ? "" : studentA2.getName());

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    @Data

    public static class StudentA{

    private String name;

    private int age;

    private long money;

    private boolean isFromCity;

    private List hobbies;

    }

    @Data

    public static class StudentB{

    private String name;

    private int age;

    private long money;

    private boolean isFromCity;

    private Hobby hobbies;

    }

    @Data

    public static class Hobby{

    private long hId;

    private String hName;

    private String type;

    private int score;

    public Hobby(){}

    public Hobby(long hId,String hName,String type,int score){

    this.hId = hId;

    this.hName = hName;

    this.type = type;

    this.score = score;

    }

    }

    }

    486.jpg

    487.jpg

    结论:Can not deserialize instance of java.util.ArrayList out of START_OBJECT token

    该错误是因为目标类属性keyX需要ArrayList类型的,待转换的json串里属性名keyX对应的,不是一个ArrayList集合,而是单个 POJO。Can not deserialize instance of com.test.JSONTest$Hobby out of START_ARRAY token

    该错误是因为目标类属性keyX需要JSONTest$Hobby类型的,待转换的json串里属性名keyX对应的,不是一个POJO对象,而是ArrayList集合。

    关于在java中怎么利用正则表达式匹配数字问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

    展开全文
  • Python正则表达式匹配数字。电话号码:\d{3}-\d{8}|\d{4}-\d{7}QQ号:[1-9][0-9]{4,}中国邮政编码:[1-9]\d{5}(?!\d)身份证:\d{15}|\d{18}ip地址:\d+\.\d+\.\d+\.\d+[1-9]\d* 正整数-[1-9]\d* 负整数-?[1-9]\d*...

    143e001e5344f0e7219c15080cde546b.png

    Python正则表达式匹配数字。

    电话号码:\d{3}-\d{8}|\d{4}-\d{7}

    QQ号:[1-9][0-9]{4,}

    中国邮政编码:[1-9]\d{5}(?!\d)

    身份证:\d{15}|\d{18}

    ip地址:\d+\.\d+\.\d+\.\d+[1-9]\d*      正整数

    -[1-9]\d*   负整数

    -?[1-9]\d* 整数

    [1-9]\d*|0  非负整数

    -[1-9]\d*|0   非正整数

    [1-9]\d*\.\d*|0\.\d*[1-9]\d*$   正浮点数

    -([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  负浮点数

    -?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  浮点数

    匹配价格,并输出平均价格。import re

    price='25.34-34.55'

    test=re.compile(r'[1-9]\d*\.\d*|0\.\d*[1-9]|[1-9]\d*').findall(price)[0]

    test2=re.compile(r'-[1-9]\d*\.\d*|-0\.\d*[1-9]|-[1-9]\d*').findall(price)[0]

    i=float(test)

    x=-float(test2)

    r=(x+i)/2

    print r

    知识点扩展:python 正则表达式找出字符串中的纯数字

    1、简单的做法>>> import re

    >>> re.findall(r'\d+', 'hello 42 I'm a 32 string 30')

    ['42', '32', '30']

    然而,这种做法使得字符串中非纯数字也会识别。>>> re.findall(r'\d+', "hello 42 I'm a 32 str12312ing 30")

    ['42', '32', '12312', '30']

    2、识别纯数字

    如果只需要用单词边界( 空格,句号,逗号) 分隔的数字,你可以使用 \b>>> re.findall(r'\b\d+\b', "hello 42 I'm a 32 str12312ing 30")

    ['42', '32', '30']

    >>> re.findall(r'\b\d+\b', "hello,42 I'm a 32 str12312ing 30")

    ['42', '32', '30']

    >>> re.findall(r'\b\d+\b', "hello,42 I'm a 32 str 12312ing 30")

    ['42', '32', '30']

    展开全文
  • 匹配字符串里面的全部数字:\d+ 例如: import re string = '''laHellotest13560165235python''' pat = '\d+' rst = re.search(pat,string) print(rst) 运行结果: 匹配字符串里面的指定3位数字:\d{3} ...

    re.match和re.search的区别

    re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none;

    re.search 扫描整个字符串并返回第一个成功的匹配。

    匹配 字符串里面的全部数字:\d+

    例如:

    import re
    string = '''laHellotest13560165235python'''
    pat = '\d+'
    rst = re.search(pat,string)
    print(rst)

    运行结果:

    匹配字符串里面的指定3位数字:\d{3}

    例如:

    import re
    string = '''laHellotest13560165235python'''
    pat = '\d{3}'
    rst = re.search(pat,string)
    print(rst)

    运行结果:

    展开全文
  • C++的正则表达式在regex头文件中,常用的表达式函数如下: basic_regex 正则表达式对象,是一个通用的... 寻找字符序列中的子串中与正则表达式匹配的结果,在找到第一个匹配的结果后就会停止查找 regex_replace .
  • 正则表达式 匹配 数字 范围

    千次阅读 2020-12-24 08:13:04
    匹配中文字符的正则表达式: [/u4e00-/u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^/x00-/xff] 评今天要写一个正则表达式,来做前端校验。主要部分是 用来...
  • 正则表达式匹配数字和空白 <input v-model="item.conjunctionSeqNo" class="form-control" onkeyup="value=value.replace(/[^\d\.\s\/]/ig,'')" onafterpaste="value=value.replace(/[^\d\.\s\/]/ig,...
  • 正则表达式中如何匹配当中数字?这是正则表达式经典例题之一,下面小编就带你一起看看它的实现。//去除可能带有的数字privatestaticvoidtest6(){//提取张三去除数字Stringr_name3="张三1359999你好8888000000";//...
  • 正则表达式匹配数字范围,匹配单个数字的方式很简单,[0-9]是[0123456789]的简写形式,可以用来匹配任何一个数字。如果要匹配 0 到 255 中的所有数字,该怎么办呢?表达式[0-255]并不能达到目的。下表所示为数字元...
  • 4 4 25 25 422 422 3189 3,189 50445 50,445 n.replace(/(\d+?)(?=(?:\d{3})+$)/g, ‘$1,’) replace(/(\d{1,3})(?=(\d{3})+(?:$|.))/g,’$1,’)
  • java正则表达式匹配所有数字的案例

    千次阅读 2021-03-04 03:42:58
    用于匹配的正则表达式为 :([1-9]\d*\.?\d*)|(0\.\d*[1-9])([1-9] :匹配1~9的数字;\d :匹配数字,包括0~9;* :紧跟在 \d 之后,表明可以匹配零个及多个数字;\. :匹配小数点;? :紧跟在 \. 之后,表明可以匹配...
  • I am trying to check whether a password is alphanumeric or not using regexbut I am not getting the result I expect. What is the problem with the below code?boolean passwordOnlyAlphaNumericCheck = fals...
  • 用于匹配的正则表达式为:([1-9]\d*\.?\d*)|(0\.\d*[1-9])([1-9]:匹配1~9的数字;\d:匹配数字,包括0~9;*:紧跟在 \d 之后,表明可以匹配零个及多个数字;\.:匹配小数点;?:紧跟在 \. 之后,表明可以匹配零个或...
  • 最近有个需求就是根据产品编号批量下架产品,需要下架日期为16-31号之间的产品,比如编号为B201607280023匹配表达式如下:^201607(1[6-9]|2[0-9]|3[0-1]).+逻辑很简单,如果是必须是1或2或3开头,如果是1开头则后面...
  • 正则表达式匹配非字母或者数字

    千次阅读 2021-01-18 05:32:35
    我有一个文件列表,里面有一些文件名,想列出第一份文件,所以用正则。 文件大概是这样的。...使用正则匹配,特定的文件 得到的all_file 是一个列表的列表, 因此,再用sum,合成一个列表 ...
  • 匹配所有数字,包括正整数/负...匹配正负号\d+匹配数字(\.\d*)? 匹配小数点和数字组合以上匹配绝大部分数字,例如 123,+123,-123,123.321,-123.321但不能匹配 .123 这种格式的数字,因此增加后一部分| 逻辑符号 或者[+-...
  • 正则表达式匹配字符串中以数字结尾的字符 <li class="xxx"><a href="http://www.xxx.net/abc90.htm">abc90</a></li> <li class="xxx"><a href=...
  • 正则表达式匹配空值

    千次阅读 2021-03-11 09:51:40
    .{0}可匹配空值 例如: port=(.{0}) 可匹配port=,匹配结果为: 这个方法适用于这个字段不一定有值,例如有时port=80,有时port=,这时候就可以这样写: port=(.{0}|\d+) 把空值放在前面,先判断是否为空完再判断...
  • public static void main(String[] args) throws Exception { String value_str = "0.000"; System.out.println(value_str.matches("([1-9]\\d*\\.?\\d*)|(0\\.\\d*)"));...\d:匹配数字,包括...
  • 中文正则表达式匹配问题之正则表达式中文匹配使用方法,这篇文章主要讲如何使用正则匹配中文字符,中文正则表达式的匹配规则不像其他正则规则一样容易记住,下面一起看看这个中文正则表达式是怎么样的。\w匹配的仅仅...
  • 正则表达式 \@FeignClient\((value|name) \= \"(.[a-z-]+)\"\) 替换的值 @FeignClient($1 = "common-label-service",url="\$\{feignclient.url.config.$2\}") $1是匹配的第一个值(即为:value或者name) $2...
  • 下面我们分步讲解如何书写正则表达式。1)根据千位把相应的位置替换成“,”,以最后一个逗号为例。解决方法:(?=d{3}$)。var result = "12345678".replace(/(?=d{3}$)/g, ','); console.log(result); //“12345,678”...
  • 用于匹配的正则表达式为:([1-9]\d*\.?\d*)|(0\.\d*[1-9])([1-9]:匹配1~9的数字;\d:匹配数字,包括0~9;*:紧跟在 \d 之后,表明可以匹配零个及多个数字;\.:匹配小数点;?:紧跟在 \. 之后,表明可以匹配零个或...
  • $input_tag = $_POST['tag'];$input_tag = explode(',', $input_tag);$input_tag = array_unique($input_tag);$input_tag = array_diff($input_tag, array(null));$leng = '';$true = '';$comma = '';...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 202,864
精华内容 81,145
关键字:

正则表达式匹配数字