Java 正则表达式 匹配英文字母

目录

语法:

匹配英文字母

要求:

使用*:

使用+:

使用+?:

总结:


在处理中,需要替换es查询语句的条件,要先进行匹配英文单词:

语法:

[abc]   表示字母abc中的任意一个

数量控制符

贪婪型

?        表示1个或0个。换句话说,表示要不然没有,要不然只有1个

*        表示0个或多个。

+       表示1个或多个。

{n}     表示正好n个

{n,m} 表示n到m个,这是一个左闭右闭区间

{n,}    表示至少n个

勉强型

相比于贪婪型,勉强型只是多了一个?:

??       表示1个或0个。换句话说,表示要不然没有,要不然只有1个

*?        表示0个或多个。

+?       表示1个或多个。

{n}?     表示正好n个

{n,m}? 表示n到m个,这是一个左闭右闭区间

{n,}?    表示至少n个

匹配英文字母

要求:

如何把

{"bool":{"must":[{"match":{"flow_name":"paramName"}}],"must_not":[{"term":{"reasonCode":157}}]}}

转换为:

匹配里面的英文字母: bool,must等

使用*:

public static void main(String[] args) {String content = "{\"bool\":{\"must\":[{\"match\":{\"flow_name\":\"paramName\"}}],\"must_not\":[{\"term\":{\"reasonCode\":157}}]}}";System.out.println("============ * ============");String pattern = "([a-zA-Z_]*)";getMatchWord(content, pattern);
}public static void getMatchWord(String content, String pattern)
{Pattern p = Pattern.compile(pattern);Matcher m = p.matcher(content);while (m.find()){String group = m.group();System.out.println("group: "+group);}
}

部分结果:

============ * ============group:group:group: boolgroup:group: mustgroup:group:group: matchgroup:group:  

因为*,从0开始,匹配到了空的情况,不符合目的

使用+:

public static void main(String[] args) {String content = "{\"bool\":{\"must\":[{\"match\":{\"flow_name\":\"paramName\"}}],\"must_not\":[{\"term\":{\"reasonCode\":157}}]}}";System.out.println("============ * ============");String pattern = "([a-zA-Z_]*)";System.out.println("============ + ============");pattern = "([a-zA-Z_]+)"; // 匹配单词getMatchWord(content, pattern);
}

结果:

============ + ============
group: bool
group: must
group: match
group: flow_name
group: paramName
group: must_not
group: term
group: reasonCode

目标达成

使用+?:

public static void main(String[] args) {String content = "{\"bool\":{\"must\":[{\"match\":{\"flow_name\":\"paramName\"}}],\"must_not\":[{\"term\":{\"reasonCode\":157}}]}}";System.out.println("============ * ============");String pattern = "([a-zA-Z_]*)";System.out.println("============ + ============");pattern = "([a-zA-Z_]+)"; // 匹配单词System.out.println("============ +? ============");pattern = "([a-zA-Z_]+?)"; // 匹配字母getMatchWord(content, pattern);
}

部分结果:

============ +? ============
group: b
group: o
group: o
group: l

总结:

匹配英文单词,因为是组合,从1开始,所以适合用“+”,单个字符的话,适合用“+?”。正则表达式的语句多测验,就更好理解,不然有时候傻傻的分不清楚,用起来有时候会出现一些偏差

Java 正则表达式 匹配英文字母相关推荐

  1. JAVA正则表达式验证英文字母、汉字和数字!!!

    java用正则表达式判断字符串中是否仅包含英文字母.数字和汉字 public static boolean isLetterDigitOrChinese(String str) {String reg ...

  2. Java 正则表达式匹配模式[贪婪型、勉强型、占有型]

    转载自  Java 正则表达式匹配模式[贪婪型.勉强型.占有型] Greediness(贪婪型):最大匹配 X?.X*.X+.X{n,} 是最大匹配.例如你要用 "<.+>&qu ...

  3. java正则验正斜杠_JAVA资格认:java正则表达式匹配斜杠

    在正则表达式里面匹配一个斜杠,需要用4个斜杠: Java代码 import java.util.regex.Matcher; import java.util.regex.Pattern; publi ...

  4. java 正则表达式匹配数字_java正则表达式匹配所有数字的案例

    用于匹配的正则表达式为 :([1-9]\d*\.?\d*)|(0\.\d*[1-9]) ( [1-9] :匹配1~9的数字: \d :匹配数字,包括0~9: * :紧跟在 \d 之后,表明可以匹配零个 ...

  5. java正则表达式匹配字符串_java正则表达式如何匹配字符串

    java正则表达式匹配字符串的方法:使用tostring,代码为[while(matcher.find()){tmp.add(matcher.group(1).toString());}]. java ...

  6. java正则匹配英文句号_「正则表达式」王国奇遇记

    第一回 初来乍到 NPC: "欢迎来到正则表达式的国度,勇士!这里的每一个人都使用正则表达式,我是这里的 NPC,每一个来到这里的人都将由我代为介绍正则世界的规则,至于能领悟到何种境界,就看 ...

  7. java正则匹配英文句号_java正则表达式最简单 学习教程

    本大教程以一个验证手机号的表达式为例,学完本例后,基本上所有的表达式都能看懂了,但是如果想要达到上手就能写的程度,还需要多练习多测试 呀! 来看 这样一个代码 String mobilePhoneRe ...

  8. java正则匹配英文句号_Scala 正则表达式 0411

    Scala 正则表达式 Scala 通过 scala.util.matching 包中的 Regex 类来支持正则表达式.以下实例演示了使用正则表达式查找单词 Scala : import scala ...

  9. java正则匹配下划线_正则表达式(匹配英文、中文、数字、下划线)

    如下的正则: 复制代码 代码示例: ^[\w\u4E00-\u9FA5\uF900-\uFA2D]*$ 1.一个正则表达式,只含有汉字.数字.字母.下划线不能以下划线开头和结尾: ^(?!_)(?!. ...

  10. JAVA正则表达式匹配字母数字下划线符号

    正则表达式简单语法及常用正则表达式 基本符号: ^  表示匹配字符串的开始位置  (例外  用在中括号中[ ] 时,可以理解为取反,表示不匹配括号中字符串) $  表示匹配字符串的结束位置 *  表示 ...

最新文章

  1. hdu 5534(dp)
  2. BUUCTF(pwn)picoctf_2018_are you root
  3. 浅谈数据分析中的“暗物质”
  4. 如何保障一场千万级大型直播?
  5. Union-find
  6. 尤其是java程序员(转载)_JAVA程序员 学习任务(转载)
  7. sql数据库备份默认路径_在Linux上SQL Server中更改默认数据库文件和备份路径
  8. Linux下MySQL忘记密码
  9. 块层介绍 第一篇: bio层
  10. Lumerical官方案例、FDTD时域有限差分法仿真学习(五)——液晶(liquid crystal)
  11. 不限速的免费下载神器,牛逼!
  12. java 批量生成条形码,打包zip(springboot)
  13. 干货!网页设计中最常用的5种配图
  14. 源码解析-偏向锁撤销流程解读
  15. 解决md文件中本地图片链接失效的方法
  16. FPN与DSSD的对比
  17. JZ·7.8.2019
  18. 痞子衡嵌入式:ARM Cortex-M开发文件详解(3)- 工程文件(.ewp)
  19. 安兔兔苹果html5排行榜,安兔兔iOS设备性能排行榜:iPhone XS Max仅第四,iPhone 8垫底...
  20. Kubernetes Ingress and Services 故障排查

热门文章

  1. linux拷贝文件命令
  2. STM32单片机USB扫码枪开发笔记
  3. 更改计算机图标大小得方法,更改桌面图标大小方法
  4. 关于ADS注册表删除和重新安装
  5. 基于电气火灾监控系统与物联网的设计与研究
  6. 毕设设计要点整理(一)——角色相关
  7. 雷达模块感应技术,智能照明LED灯的应用,5.8G雷达感应模块
  8. 微波雷达感应开关,雷达感应智能模块,照明节能环保技术应用
  9. WebRTC自适应控制算法
  10. 大写金额用计算机简单些,小写金额转换为大写金额(C实现)