+ 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。
? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。
* 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*
. 匹配除换行符 \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);
在我的博客中,涉及到正则表达式的博客
Jsoup处理HTML中标签内容,获取最大的数字 该文章中正则表达式在Java中使用