Java正则表达式基础知识与字符串处理工具详解

Java编程中正则表达式的使用总结

Java正则表达式基础知识与字符串处理工具详解

更新时间:2016年5月11日17:27:18 作者:超低空

本文主要介绍Java编程中正则表达式的使用总结。正则表达式是一种强大的字符串处理工具。 Java对正则表达式的支持还是很好的。我们先来梳理一下正则表达式。一些基础知识:

1. 字符串中的正则表达式

正则表达式可用于对字符串进行搜索、提取、分割、替换等操作。 String类提供了以下特殊方法:

boolean matches(String regex):判断字符串是否与指定的正则表达式匹配。

String ReplaceAll(String regex, String replacement):将字符串中所有与regex匹配的子串替换为replacement。

String[] split(String regex):使用regex作为分隔符,将字符串拆分为多个子字符串。

以上特殊方法都依赖于Java提供的正则表达式。

2. 创建正则表达式

x:字符x(x可以代表任意合法字符);

\0mnn:八进制数Omnn表示的字符;

\xhh:十六进制0xhh表示的字符;

\uhhhh:十六进制0xhhhh表示的UNICODE字符;

\t:tab('\u0009');

\n:换行(newline)字符('\u000A');

\r:回车('\u000D');

\f:换页符('\u000C');

\a:闹钟(响铃)符号('\u0007');

\e:转义字符('\u001B');

\cx:x对应的控制字符。例如,\cM 匹配 Ctrl-M。 x值必须是A~Z或a~z之一;

3、正则表达式中的特殊字符

$: 匹配行尾。要匹配 $ 字符本身,请使用 \$;

^:匹配行的开头。要匹配 ^ 字符本身,请使用 \^;

():标记子表达式的开始和结束。要匹配这些字符,请使用 \( 和 \);

[]:用于确定括号表达式的起始和结束位置。要匹配这些字符,请使用 \[ 和 \];

{}:用于标记前一个子表达式出现的频率。要匹配这些字符,请使用 \{ 和 \};

*:指定前面的子表达式可以出现零次或多次。要匹配 * 字符本身,请使用 \*;

+:指定前面的子表达式可以出现一次或多次。要匹配 + 字符本身,请使用 \+;

?:指定前面的子表达式可以出现零次或一次。为了匹配?字符本身,使用 \?;

.:匹配除换行符\n之外的任意单位字符。要匹配字符本身,请使用 \.;

\:用于转义下一个字符,或指定八进制或十六进制字符。要匹配 \ 字符,请使用 \\;

|:指定两项之间的任意一项。为了匹配 |字符本身,使用\|;

4. 预定义字符

.:可以匹配任意字符;

\d:匹配从0到9的所有数字;

\D:匹配非数字;

\s:匹配所有空白字符,包括空格、制表符、回车、换页、换行等;

\S:匹配所有非空白字符;

\w:匹配所有单词字符,包括0到9的所有数字、26个英文字母、下划线(_);

\W:匹配所有非单词字符;

5. 边界匹配器

^: 行首

$:行尾

\b:字边界

\B:非字边界

\A:输入的开始

\G: 上一场比赛结束

\Z:输入结束,仅用于最后的终止符

\z:输入结束

6. 表示比赛次数的符号

下图显示了代表匹配次数的符号,这些符号用于确定紧邻该符号左侧的符号出现的次数:

(1) 假设我们要在文本文件中搜索美国社会安全号码。该号码的格式为 999-99-9999。用于匹配它的正则表达式如图1所示。在正则表达式中,连字符(“-”)有特殊的含义。它表示一个范围,例如从 0 到 9。因此,在匹配社会安全号码中的连字符时,其前面有一个转义字符“\”。

(2) 假设在搜索时,您希望连字符出现或不出现——即999-99-9999和999999999都是正确的格式。这时候可以加上“?”连字符后的数量限制符号,如图:

(3) 下面我们再看一个例子。美国汽车牌照的一种格式是四个数字加两个字母。其正则表达式前面是数字部分“[0-9]{4}”,加上字母部分“[AZ]{2}”。下图显示了完整的正则表达式。

7. 一些例子

实施例1

function replace(content){
 var reg = '\\[(\\w+)\\]',
  pattern = new RegExp(reg, 'g');
 return content.replace(pattern, '');
}
//或
function replace(content){
 return content.replace(/\[(\w+)\/g, '');
}

实施例2

//zero-width look behind的替换方案
//(?<=...)和(?

实施例3

$& 符号的使用

function escapeRegExp(str) {
 return str.replace(/[abc]/g, "($&)");
}
var str = 'a12b34c';
console.log(escapeRegExp(str)); //(a)12(b)34(c)

你可能想看:
« 上一篇
下一篇 »

相关推荐

java中什么是冒泡,冒泡算法

2026年09月06日

27阅读

java中冒号,java双冒号

2026年09月06日

26阅读

java中的->,java中的是什么意思

2026年09月06日

24阅读

java中的super用法,Java中super的说明

2026年09月06日

28阅读

java中反射的应用,java中反射的应用场景

2026年09月06日

26阅读

java中开关的定义,Java关键字有哪些

2026年09月06日

26阅读