Android中常见正则表达式总结
2017-08-07 17:00
281 查看
匹配代码:
读取
其中
匹配完成之后可以通过group(index)来获取内容,一般group(0)表示匹配到的所有内容,group(1)表示正则表达式中第一对小括号中匹配到的内容,group(2)表示正则表达式中第二对小括号中匹配到的内容,以此类推。本例中,group(0)的值如下:
group(1)的值如下:
此例中因为没有第二对小括号,所有没有group(2)没值。
匹配该种类型的字符串,则正则表达式为:
则匹配完成后,group(0)的值如下:
group(1)的值如下:
group(2)的值如下:
String content = "要匹配的字符串"; Pattern p = Pattern.compile("正则表达式"); Matcher m = p.matcher(content);
example1
<application android:name="com.abc.MyApplication" android:allowBackup="false" android:allowClearUserData="false" android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name">
读取
<application和
>之间的内容,则正则表达式为:
Pattern p = Pattern.compile("<application([^:]*?)>"); Matcher m = p.matcher(content);
其中
([^:]*?)定义要匹配的内容。一对小括号定义一个匹配项,其中
[^:]表示匹配除
:以外的任意字符,注意这里的
:是中文字符,这样才可以匹配英文字符
:。
匹配完成之后可以通过group(index)来获取内容,一般group(0)表示匹配到的所有内容,group(1)表示正则表达式中第一对小括号中匹配到的内容,group(2)表示正则表达式中第二对小括号中匹配到的内容,以此类推。本例中,group(0)的值如下:
<application android:name="com.abc.MyApplication" android:allowBackup="false" android:allowClearUserData="false" android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name">
group(1)的值如下:
android:name="com.abc.MyApplication" android:allowBackup="false" android:allowClearUserData="false" android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name"
此例中因为没有第二对小括号,所有没有group(2)没值。
example2
<manifest xxx任意字符> yyy任意字符 </manifest>
匹配该种类型的字符串,则正则表达式为:
Pattern p = Pattern.compile("<manifest([^:]*?)>([^:]*?)</manifest>"); Matcher m = p.matcher(content);
则匹配完成后,group(0)的值如下:
<manifest xxx任意字符> yyy任意字符 </manifest>
group(1)的值如下:
xxx任意字符
group(2)的值如下:
yyy任意字符
附录
常用元字符
代码 | 说明 |
---|---|
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线 |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
常用限定符
代码/语法 | 说明 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
常用反义词
代码/语法 | 说明 |
---|---|
\W | 匹配任意不是字母,数字,下划线,汉字的字符 |
\S | 匹配任意不是空白符的字符 |
\D | 匹配任意非数字的字符 |
\B | 匹配不是单词开头或结束的位置 |
[^x] | 匹配除了x以外的任意字符 |
[^aeiou] | 匹配除了aeiou这几个字母以外的任意字符 |
常用模式修正符
代码/语法 | 说明 |
---|---|
i | 表示在进行匹配的时候不区分大小写 |
m | 多行识别.即将字符串视为多行,不管是那行都能匹配 |
s | 将字符串视为单行,转义回车换行符作为普通字符 |
g | 表示全局匹配 |
x | 将模式中的空白忽略 |
A | 强制从目标字符串开头匹配 |
D | 强制尾部无任何内容.若使用$限制结尾字符,则不允许结尾有换行 |
U | 禁止贪婪匹配,只匹配最近的一个字符串(不重复匹配) |
e | 配合PHP函数preg_replace()使用,可以把匹配来的字符串当作正则表达式执行 |
相关文章推荐
- 常见正则表达式总结
- 常见的正则表达式总结
- 常见正则表达式总结
- android 输入验证的正则表达式 总结
- 常见的正则表达式全面整理总结
- Android :正则表达式总结
- 正则表达式中的*,+,?以及\w和\W的区别等常见问题的总结
- 正则表达式常见字符及含义总结
- JavaScript学习笔记之——正则表达式总结
- 基本正则表达式个人总结(以CentOS 6.3环境下shell为例)
- 正则表达式使用总结
- Android权限机制总结与常见权限不足问题分析
- C# 中的常用正则表达式总结
- 菜鸟学android——正则表达式,替换
- Android UI的一些常见属性总结注意点
- 自己总结的JS正则表达式
- 关于正则表达式由浅到深的总结
- 正则总结:正则表达式在js中的高级应用
- 常用正则表达式总结
- [转]关于正则表达式 g,m 参数的总结,为了回答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?”