正则表达式笔记

+ 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。

? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。

* 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*

. 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \.

指明两项之间的一个选择。要匹配 |,请使用 \|

\s 出现空白就匹配

\S 出现非空白就匹配

 

一些正则案例

"A":"南斯拉夫", 

^("A".+),$      匹配"A"开头一直到结尾

"Q":"地球上的第50亿个人类居民出生在"

^\"Q 匹配"Q开头的

(\r\n)+ 匹配一个空行

^([^QA].*)  匹配QA开头直到结尾

JSON数据的value中里面多了 “ 双引号,如果不去掉这个多余的双引号 在JSON.parse(str)就会出现解析错误

首先出错的文本信息是这样子的

"[{\"cp_artist_id\": 55886, \"cp_artist_name\": \"Francisc瑞 "Char ro" Avitia\"}]"

显然解析cp_artist_name的value会出现错误,现在要做的是把Char ro的双引号干掉

([0-9a-zA-Z\u4e00-\u9fa5])\s"([0-9a-zA-Z\u4e00-\u9fa5]+|[0-9a-zA-Z\u4e00-\u9fa5\s]+)"\s

这里的匹配规则是 字符(数字,字母,汉字)  空格  引号 内容(可能内容中存在空格) 双引号 空格

根据我这个匹配顺序你还可以随意改变,然后替换的方法是 $1 $2

匹配 [1]或[12]或[1-1]或[12-2]或[1-12]或[12-222]

\[\d+\-?\d*\]

处理下面的json对象

{"zh":"0",
"yue":"1",
"min":"2",
"jp":"3",
"kor":"4",
"en":"5",
"fr":"6",
"pt":"7",
"de":"8",
"ru":"9"
}

使用正则匹配替换成这个样子。

{"zh
"yue
"min
"jp
"kor
"en
"fr
"pt
"de
"ru
}

如果正则写成[a-z]\".* 这样会把第一个字母也去掉了,那么不妨使用分组就可以不用删除第一个字母了。

查询目标:([a-z])(\".*)

替换为:$1

上述的正则表达式,属于一种空洞的表现。学习正则表达式快速的方法是要进行不断测试,试错。

在chrome的控制台,更换ni字符的位置,这样就能快速测试你的正则表达式是否正确。

/ni+/.test("ni");

正则表达匹配正整数

/^\d+$/

 

Java中使用正则表达式检验

String pattern = "^\\d*$";
Pattern regx = Pattern.compile(pattern);
Matcher m =regx.matcher(pageIndex);
boolean istrue = m.find();

 

Java中使用正则提出数据,如下代码输出结果是100292

String url = "hahaha&product_id=100292&hahaha"
private static final Pattern pattern = Pattern.compile("product_id=(\\d+)\\&");
Matcher matcher = pattern.matcher(url);
String productTicketId = matcher.group(1);

 

在我的博客中,涉及到正则表达式的博客

mongodb js使用变量正则表达式 

Jsoup处理HTML中标签内容,获取最大的数字   该文章中正则表达式在Java中使用

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值