這篇文章主要介紹了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可代表任何合法的字元);
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的替换方案 //(?<=...)和(? //方法一:反转字符串,用lookahead进行搜索,替换以后再倒回来,例如: String.prototype.reverse = function () { return this.split('').reverse().join(''); } //模拟'foo.bar|baz'.replace(/(?<=\.)b/, 'c') 即将前面有'.'的b换成c 'foo.bar|baz'.reverse().replace(/b(?=\.)/g, 'c').reverse() //foo.car|baz //方法二:不用零宽断言,自己判断 //模拟'foo.bar|baz'.replace(/(?<=\.)b/, 'c') 即将前面有'.'的b换成c 'foo.bar|baz'.replace(/(\.)?b/, function ($0, $1) { return $1 ? $1 + 'c' : $0; }) //foo.car|baz //模拟'foo.bar|baz'.replace(/(? 'foo.bar|baz'.replace(/(\.)?b/, function ($0, $1) { return $1 ? $0 : 'c'; }) //foo.bar|caz //这个方法在一些比较简单的场景下有用,并且可以和lookahead一起用 //但也有很多场景无效,例如: //'tttt'.replace(/(?<=t)t/g, 'x') 结果应该是'txxx' 'tttt'.replace(/(t)?t/g, function ($0, $1) { return $1 ? $1 + 'x' : $0; }) // txtx
例子3
$&符号的使用 function escapeRegExp(str) { return str.replace(/[abc]/g, "($&)"); } var str = 'a12b34c'; console.log(escapeRegExp(str)); //(a)12(b)34(c)
以上就是Java编程中正则表达式的用法总结的内容,更多相关内容请关注PHP中文网(www.php.cn)!