> 백엔드 개발 > PHP 튜토리얼 > 정규 표현식에서 괄호의 모호함. 정규 표현식. 정규 표현식.

정규 표현식에서 괄호의 모호함. 정규 표현식. 정규 표현식.

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-07-29 08:48:35
원래의
1372명이 탐색했습니다.

괄호는 정규 표현식에서 다음과 같은 의미를 갖습니다

  • 정량자의 범위를 제한합니다
  • 다중 선택 구조의 범위를 제한합니다
  • 뒤로 캡처 참고문헌 텍스트
  • 그룹 캡쳐
  • 그룹만 하고 캡쳐는 안함
  • 미리보기

1. 수량자 범위 제한

1

2

3

var reg1 = /(Matz)?/; // 0或1个Matz

var reg2 = /(Matz)+/; // 1个以上Matz

var reg3 = /(Matz)*/; // 0或多个Matz

12

3

1

2

3

4

var reg = /(Matz|Eich)/

reg.test('Matz'// => true

reg.test('Eich'// => true

reg.test('John'// => false

var reg1 = /(마츠)?/ // 0 또는 1 Matzvar 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') //와 동일 => falsereg.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 // =>2272RegExp.$3 // =>2724var 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 백커스') // => falsereg.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('')

}

12

3

456 789
/* * 별도의 휴대폰 번호 * 13522722724 -> 135 2272 2724 */함수 별도의 모바일(숫자) { var arr = ( '0' + num ).replace(/(d{4})(?=d)/g,"$1 ").split('') arr .shift() return arr.join('')}
위 내용은 정규식과 괄호를 비롯한 정규식 괄호의 모호성을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.
관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿