Java 正则表达式 匹配英文字母
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 正则表达式 匹配英文字母相关推荐
- JAVA正则表达式验证英文字母、汉字和数字!!!
java用正则表达式判断字符串中是否仅包含英文字母.数字和汉字 public static boolean isLetterDigitOrChinese(String str) {String reg ...
- Java 正则表达式匹配模式[贪婪型、勉强型、占有型]
转载自 Java 正则表达式匹配模式[贪婪型.勉强型.占有型] Greediness(贪婪型):最大匹配 X?.X*.X+.X{n,} 是最大匹配.例如你要用 "<.+>&qu ...
- java正则验正斜杠_JAVA资格认:java正则表达式匹配斜杠
在正则表达式里面匹配一个斜杠,需要用4个斜杠: Java代码 import java.util.regex.Matcher; import java.util.regex.Pattern; publi ...
- java 正则表达式匹配数字_java正则表达式匹配所有数字的案例
用于匹配的正则表达式为 :([1-9]\d*\.?\d*)|(0\.\d*[1-9]) ( [1-9] :匹配1~9的数字: \d :匹配数字,包括0~9: * :紧跟在 \d 之后,表明可以匹配零个 ...
- java正则表达式匹配字符串_java正则表达式如何匹配字符串
java正则表达式匹配字符串的方法:使用tostring,代码为[while(matcher.find()){tmp.add(matcher.group(1).toString());}]. java ...
- java正则匹配英文句号_「正则表达式」王国奇遇记
第一回 初来乍到 NPC: "欢迎来到正则表达式的国度,勇士!这里的每一个人都使用正则表达式,我是这里的 NPC,每一个来到这里的人都将由我代为介绍正则世界的规则,至于能领悟到何种境界,就看 ...
- java正则匹配英文句号_java正则表达式最简单 学习教程
本大教程以一个验证手机号的表达式为例,学完本例后,基本上所有的表达式都能看懂了,但是如果想要达到上手就能写的程度,还需要多练习多测试 呀! 来看 这样一个代码 String mobilePhoneRe ...
- java正则匹配英文句号_Scala 正则表达式 0411
Scala 正则表达式 Scala 通过 scala.util.matching 包中的 Regex 类来支持正则表达式.以下实例演示了使用正则表达式查找单词 Scala : import scala ...
- java正则匹配下划线_正则表达式(匹配英文、中文、数字、下划线)
如下的正则: 复制代码 代码示例: ^[\w\u4E00-\u9FA5\uF900-\uFA2D]*$ 1.一个正则表达式,只含有汉字.数字.字母.下划线不能以下划线开头和结尾: ^(?!_)(?!. ...
- JAVA正则表达式匹配字母数字下划线符号
正则表达式简单语法及常用正则表达式 基本符号: ^ 表示匹配字符串的开始位置 (例外 用在中括号中[ ] 时,可以理解为取反,表示不匹配括号中字符串) $ 表示匹配字符串的结束位置 * 表示 ...
最新文章
- hdu 5534(dp)
- BUUCTF(pwn)picoctf_2018_are you root
- 浅谈数据分析中的“暗物质”
- 如何保障一场千万级大型直播?
- Union-find
- 尤其是java程序员(转载)_JAVA程序员 学习任务(转载)
- sql数据库备份默认路径_在Linux上SQL Server中更改默认数据库文件和备份路径
- Linux下MySQL忘记密码
- 块层介绍 第一篇: bio层
- Lumerical官方案例、FDTD时域有限差分法仿真学习(五)——液晶(liquid crystal)
- 不限速的免费下载神器,牛逼!
- java 批量生成条形码,打包zip(springboot)
- 干货!网页设计中最常用的5种配图
- 源码解析-偏向锁撤销流程解读
- 解决md文件中本地图片链接失效的方法
- FPN与DSSD的对比
- JZ·7.8.2019
- 痞子衡嵌入式:ARM Cortex-M开发文件详解(3)- 工程文件(.ewp)
- 安兔兔苹果html5排行榜,安兔兔iOS设备性能排行榜:iPhone XS Max仅第四,iPhone 8垫底...
- Kubernetes Ingress and Services 故障排查