正则表达式必须牢记的几个元字符详解(java使用实例)
来源:互联网 发布:企业软件上线时刻表 编辑:程序博客网 时间:2024/06/05 09:12
正则表达式元字符
1、常用元字符
.
表示除了换行符之外任意一个字符
\s
空格字符(空格键、tab、换行、回车)
\S
非空格字符([^\s])
\d
一个数字,(相当于[0-9])
\D
一个非数字的字符,(相当于[^0-9])
\w
一个单次字符(word character)(相当于[a-zA-Z0-9]还有下划线)
^
一行的开始
$
一行的结尾
\b
一个单词的边界
\B
一个非单词的边界
[]
匹配方括号内的一个字符,例如:[abc]表示字符a,b,c中的任意一个(与a|b|c相同)
2、表示次数的元字符
*
重复零次或更多次
例如:a*匹配零个或者多个a
+
重复一次或更多次
例如:a+匹配一个或者多个a
?
重复零次或一次
例如:a?匹配零个或者一个a
{n}
重复n次
例如:a{4}匹配4个a
{n,}
重复n次或更多次
例如:a{4,}匹配至少4个a
{n,m}
重复n到m次
例如:a{4,10}匹配4-10个a
3、正则表达式定位符
^
^hell
定位符规定匹配模式必须出现在目标字符串开头
hello、hellboy
$
ar$
定位符规定匹配模式必须出现在目标字符串结尾
car、bar
\b
\bbom、man\b
定位符规定匹配模式必须出现在目标字符串开头或结尾两个边界之一
bomb、human/woman
\B
\Bjava\B
定位符规定匹配模式必须出现在目标字符串开头和结尾两边界之内
ForjavaEJB
4、常用正则表达式
1、中文字符的匹配
正则表达式支持Unicode码,汉字范围可使用Unicode来表示
·[\u4E00-\u9FA5]汉字
·[\uFE30-\uFFA0]全角字符
·[^\x00-\xff]匹配双字节字符(包括汉字在内)
5、代码示例
/**
*
*/
package com.csdn.util;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexUtil {
/**
* Description:匹配第一条结果,dealStr目标字符串,regexStr正则表达式字符串,n目标字符串在正则表达式字符串的位置
*
* @author earn
* @date 2016年5月16日
*/
public static String getFirstString(String dealStr, String regexStr, int n) {
if (dealStr == null || regexStr == null || n < 1) {
return "";
}
Pattern pattern = Pattern.compile(regexStr, Pattern.CASE_INSENSITIVE
| Pattern.DOTALL);
Matcher matcher = pattern.matcher(dealStr);
while (matcher.find()) {
return matcher.group(n).trim();
}
return "";
}
/**
* Description:匹配所有结果,结果组装成数组放入list中
*
* @author earn
* @date 2016年5月16日
*/
public static List<String> getList(String dealStr, String regexStr, int n) {
List<String> list = new ArrayList<String>();
if (dealStr == null || regexStr == null || n < 1) {
return list;
}
Pattern pattern = Pattern.compile(regexStr, Pattern.CASE_INSENSITIVE
| Pattern.DOTALL);
Matcher matcher = pattern.matcher(dealStr);
while (matcher.find()) {
list.add(matcher.group(n).trim());
}
return list;
}
/**
* Description:匹配多个信息的所有结果,组装成数组放入list中
*
* @author earn
* @date 2016年5月16日
*/
public static List<String[]> getList(String dealStr, String regexStr,
int[] array) {
List<String[]> list = new ArrayList<String[]>();
if (dealStr == null || regexStr == null || array == null) {
return list;
}
for (int i = 0; i < array.length; i++) {
if (array[i] < 1) {
return list;
}
}
Pattern pattern = Pattern.compile(regexStr, Pattern.CASE_INSENSITIVE
| Pattern.DOTALL);
Matcher matcher = pattern.matcher(dealStr);
while (matcher.find()) {
String[] ss = new String[array.length];
for (int i = 0; i < array.length; i++) {
ss[i] = matcher.group(array[i]).trim();
}
list.add(ss);
}
return list;
}
/**
* Description:
*
* @author earn
* @date 2016年5月16日
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
- 正则表达式必须牢记的几个元字符详解(java使用实例)
- 正则表达式的元字符详解
- 正则表达式学习(六)元字符的使用
- java正则表达式元字符
- 正则表达式-正则表达式的元字符
- 正则表达式的元字符
- 正则表达式的元字符
- 正则表达式的元字符
- 正则表达式的元字符
- 正则表达式的元字符
- Sed 命令详解 正则表达式元字符
- Sed 命令详解 正则表达式元字符
- Sed 命令详解 正则表达式元字符
- 正则表达式入门之使用元字符
- JAVA中正则表达式元字符
- 正则表达式--元字符
- 正则表达式--元字符
- 正则表达式元字符
- shell基本语法
- 史上最全最强SpringMVC详细示例实战教程
- unity 事件的触发脚本
- Linux修改主机名
- CString Format(_T("%s")出错
- 正则表达式必须牢记的几个元字符详解(java使用实例)
- MDK下设置非零初始化
- linux init 指令
- Cocoapods降低版本及卸载
- Android 之优雅代码(一)——巧用assets
- 映射文件中主键生成策略的指定
- Intent 打开文件浏览器,返回后得到文件路径
- Android中通过scheme实现网页打开App(deep-link)
- html中背景图按比例缩放全屏显示