괄호는 정규 표현식에서 다음과 같은 의미를 갖습니다
- 정량자의 범위를 제한합니다
- 다중 선택 구조의 범위를 제한합니다
- 뒤로 캡처 참고문헌 텍스트
- 그룹 캡쳐
- 그룹만 하고 캡쳐는 안함
- 미리보기
1. 수량자 범위 제한
1
2
3
|
var reg1
= /(Matz)?/; //
0或1个Matz
var reg2
= /(Matz)+/; //
1个以上Matz
var reg3
= /(Matz)*/; //
0或多个Matz
|
123
|
1
2
3
4
|
var reg
= /(Matz|Eich)/
reg.test( 'Matz' ) //
=> true
reg.test( 'Eich' ) //
=> true
reg.test( 'John' ) //
=> false
|
var reg1
= /(마츠)?/ //
0 또는 1 Matz var reg2
= /(마츠)+/ //
1개 이상의 Matz
var reg3
= /(마츠)*/ //
0개 이상의 Matz
1
2
3
4
5
6
|
var reg
= /(boy)1/ //
相当于 /boyboy/
reg.test( 'boy' ) //
=> false
reg.test( 'boyboy' ) //
=> true
var reg
/(boy)(girl)12/
reg.test( 'boygirlboygirl' ) //
=> true
|
|
2. 다중 선택 구조의 범위를 제한합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
var reg1
= /(d{3}) (d{3})/
var str
= '111
222'
str.replace(reg1, '
' ) //
=> '222 111' , 注意这里的,,存放了匹配的字符串
var reg2
= /(d{3})(d{4})(d{4})/
var mobile
= '13522722724'
reg2.test(mobile)
RegExp. //
=> 135
RegExp. //
=> 2272
RegExp. //
=> 2724
var reg3
= /(d{3})(d{4})(d{4})/
var mobile
= '13522722724'
mobile.replace(reg3, '
' ) //
=> '135 2272 2724'
|
12 3
1
2
3
|
var reg
= /(?:d+)/
reg.test( '13522722724' )
RegExp. //
=> '' 不存储匹配的元素
|
4 |
var reg
= /(Matz|Eich)/
reg.test( 'Matz' ) //
=> true
reg.test( 'Eich' ) //
=> true
reg.test( 'John' ) //
=> false
1
2
3
4
5
|
var reg
= /(John) (?=Resig)/
reg.test( 'John' ) //
=> false
reg.test( 'John
Backus' ) //
=> false
reg.test( 'John
Reisg' ) //
=> true
RegExp. //
=> 'John',注意这里不是 "John Resig"
|
|
3. 역참조용 텍스트 캡처
123456 |
var reg
= /(소년)1/ //
/boyboy/ reg.test( 'boy' ) //와 동일
=> false reg.test( 'boyboy' ) //
=> 참 var reg
/(소년)(소녀)12/ reg.test( 'boygirlboygirl' ) //
=> true
|
그룹 캡처
123 4567891011 121314 |
var reg1
= /(d{3}) (d{3})/ var str
= '111
222' str.replace(reg1, '$2
$1' ) //
=> '222 111' , 여기서 $2와 $1은 일치하는 문자열을 저장합니다. var reg2
= /(d{3})(d{4})(d{4})/ var 모바일
= '13522722724' reg2.test(mobile) RegExp.$1 //
=>135RegExp.$2 //
=>2272 RegExp.$3 //
=>2724 var reg3
= /(d{3})(d{4})(d{4})/ var 모바일
= '13522722724' mobile.replace(reg3, '$1
$2 $3' ) //
=> '135 2272 2724'
|
5. ( "?:"와 함께)
1 23 |
var reg
= /(?:d+)/ reg.test( '13522722724' ) RegExp.$1 //
=> '' 일치하는 요소를 저장하지 않음
|
더 긴 정규식 역참조가 필요하지 않은 경우에는 캡처 없이 그룹화를 사용해야 합니다. 6. Lookahead(lookahead, "?="와 함께) 정규식에 일부 문자를 예상하지만 위치를 이동하지 않도록 지시합니다. 특정 위치의 문자와 일치합니다.
12 345 |
var reg
= /(존) (?=Resig)/ reg.test( '존' ) //
=> falsereg.test( 'John
백커스' ) //
=> false reg.test( 'John
레이스' ) //
=> 참 RegExp.$1 //
=> 'John', 이는 'John Resig'가 아닙니다.
|
다음은 예측을 사용하여 휴대폰 번호 형식을 지정하는 작은 함수입니다
1
2
3
4
5
6
7
8
9
|
/*
*
手机号分隔
*
13522722724 -> 135 2272 2724
*/
function separateMobile(num)
{
var arr
= ( '0' +
num ).replace(/(d{4})(?=d)/g, "
" ).split( '' )
arr.shift()
return arr.join( '' )
}
|
123456 789 |
/* *
별도의 휴대폰 번호 *
13522722724 -> 135 2272 2724 */ 함수 별도의 모바일(숫자)
{ var arr
= ( '0' +
num ).replace(/(d{4})(?=d)/g, "$1
" ).split( '' ) arr .shift() return arr.join( '' )}
|
위 내용은 정규식과 괄호를 비롯한 정규식 괄호의 모호성을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.