이 글에서는 주로 Java 프로그래밍에서 정규식의 사용법을 요약합니다. 정규식은 강력한 문자열 처리 도구입니다. 정규식에 대한 몇 가지 기본 지식을 먼저 정리하겠습니다. 표현식:
1. 문자열의 정규식
정규식은 문자열에 대한 검색, 추출, 분할, 바꾸기 및 기타 작업에 사용할 수 있습니다. String 클래스는 다음과 같은 특수 메서드를 제공합니다.
boolean match(String regex): 문자열이 지정된 정규식과 일치하는지 확인합니다.
String replacementAll(String regex, String replacement): 문자열에서 정규식과 일치하는 모든 하위 문자열을 대체 문자열로 바꿉니다.
String[] 분할(String 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)!