1. 현의 정규 표현
정규 표현식을 사용하여 문자열의 검색, 추출, 세그먼트, 교체 및 기타 작업을 사용하십시오. 문자열 클래스에서 다음과 같은 특수 메소드가 제공됩니다.
부울 매치 (String Regex) : 문자열이 지정된 정규식과 일치하는지 여부를 결정합니다.
String Replaceall (String Regex, String Replacement) :이 문자열의 Regex와 일치하는 모든 하위 문자열을 교체로 교체하십시오.
String [] split (String regex) : regex를 분리기로 사용하여 문자열을 여러 하위 문자로 분할하십시오.
위의 모든 특별 방법은 Java가 제공 한 정규 표현식에 의존합니다.
2. 정규 표현식을 만듭니다
X : 문자 x (x는 법적 문자를 나타낼 수 있음);
/0mnn : Octal Number OMNN으로 표시되는 문자;
/XHH : 16 진수 0xHH로 표시되는 문자;
/uhhhh : 16 진수 0xhhhh로 표시되는 유니 코드 문자;
/t : 탭 ( '/u0009');
/n : 새로운 라인 (라인 Newline) 문자 ( '/u000a');
/r : 캐리지 리턴 문자 ( '/u000d');
/f : 페이지 break ( '/u000c');
/a : 알람 (bell) 기호 ( '/u0007');
/e : 탈출 문자 ( '/u001b');
/cx : x에 해당하는 컨트롤러. 예를 들어, /cm은 ctrl-m과 일치합니다. x 값은 a ~ z 또는 a ~ z 중 하나 여야합니다.
3. 정기적 인 표현의 특수 인물
$ : 줄의 끝과 일치합니다. $ 문자 자체와 일치하려면 사용 /$;
^: 선의 시작과 일치합니다. ^ 문자 자체와 일치하려면 사용 / ^;
() : 하위 표현의 시작 및 종료 위치를 표시하십시오. 이 문자와 일치하려면 /(및 /)를 사용합니다.
[] : 브래킷 표현식의 시작 및 끝 위치를 결정하는 데 사용됩니다. 이 문자와 일치하기 위해 사용 /[및 /];
{} : 이전 하위 표현의 주파수를 표시하는 데 사용됩니다. 이 문자와 일치하려면 사용 /{및 /};
*: 이전 하위 표현이 0 이상 발생할 수 있음을 지정합니다. * 문자 자체와 일치하려면 사용 / *;
+: 이전 하위 표현이 한 번 이상 발생할 수 있음을 지정합니다. + 문자 자체와 일치하려면 / +를 사용하십시오.
? : 이전 하위 표현이 0 또는 한 번 발생할 수 있음을 지정합니다. ? 캐릭터 자체와 일치하려면 사용 /?;
. : 라인 브레이크/n을 제외한 모든 단위 문자와 일치합니다. 일치시키기 위해 문자 자체, 사용 /.;
/: 다음 문자를 피하거나 문자 또는 16 진 문자를 지정하는 데 사용됩니다. 일치 /문자를 위해 사용 //;
| : 두 항목 중 하나를 지정하십시오. | 문자 자체와 일치하려면 사용 /|;
4. 사전 정의 된 문자
. : 모든 캐릭터와 일치 할 수 있습니다.
/d : 0 ~ 9의 모든 숫자를 일치시킵니다.
/d : 숫자를 일치시킵니다.
/s : 공백, 탭, 캐리지 리턴, 페이지 브레이크, 라인 브레이크 등을 포함한 모든 공백 문자를 일치시킵니다.;
/s : 모든 비 whitescace 문자와 일치합니다.
/w : 0 ~ 9, 26 영어 문자 및 밑줄 (_)의 모든 숫자를 포함하여 모든 단어 문자와 일치합니다.
/W : 모든 비 단어 문자와 일치합니다.
5. 경계 일치 문자
^: 줄의 시작
$ : 줄의 끝
/b : 단어 경계
/b : 비 단어 경계
/A : 입력의 시작
/g : 이전 경기의 끝
/z : 입력의 끝, 마지막 결말 문자에 대해서만
/z : 입력의 끝
6. 일치 수를 나타내는 기호
다음 그림은 일치 수를 나타내는 기호를 보여줍니다. 이는 기호의 왼쪽 옆에 나타나는 횟수를 결정하는 데 사용됩니다.
(1) 텍스트 파일에서 미국 사회 보장 번호를 검색하고 싶다고 가정합니다. 이 숫자의 형식은 999-99-9999입니다. 일치하는 데 사용되는 정규 표현은 그림 1에 나와 있습니다. 정규 표현식에서는 하이픈 ( "-")은 특수한 의미를 가지며, 이는 0에서 9까지의 범위를 나타냅니다. 따라서 사회 보장 번호의 하이픈을 일치시킬 때는 탈출 문자 "/"가 선행해야합니다.
(2) 검색 할 때 하이픈이 나타날 수 있기를 바랍니다. 즉, 999-99-9999 및 9999999999999는 모두 올바른 형식입니다. 현재 "?"를 추가 할 수 있습니다. 그림과 같이 hyphen의 수량 자격 기호 :
(3) 아래의 다른 예를 살펴 보겠습니다. 미국 자동차 번호판의 한 형식은 4 개의 숫자와 2 글자입니다. 정규 표현식은 숫자 부분 "[0-9] {4}"및 문자 부분 "[az] {2}"에 앞서 있습니다. 다음 그림은 완전한 정규 표현을 보여줍니다.
7. 일부 예 1
함수 대체 (content) {var reg = '// [(// w+) //]', pattern = new regexp (reg, 'g'); return content.replace (패턴, '<img src = "img/$ 1.png">');} // 또는 함수 replace (content) {return content.replace (// [/w+) // g, '<img src = "img/$ 1.png">');}예 2
// 대체 솔루션 뒤에서 ZERO-Width의 모습 // (? <= ...) 및 (? <! ...) // 메소드 1 : 문자열을 뒤집고, LookaheAd로 검색하고, 교체 한 다음 다시 다시 확인한 다음 String.Prototype.Reverse = function () {return this.split ( ''); join ( ''); 'foo.bar | baz'.replace (/(? <=/.) b/,'c ') 즉시 b를 대체하십시오.' c'foo.bar | baz'.reverse (). replace (/b (? =/.)/g, 'c'). reverse () //foo () //foo.car|baz//method 2 : Zero Width Assertion을 사용하지 마십시오. c'foo.bar | baz'.replace (/(/.)? b/, function ($ 0, $ 1) {return $ 1? $ 1 + 'c': $ 0;}) //foo.car|baz//simulate 'foo.bar | baz'.replace (? <!/.) B/,'C '). '.bar | baz'.replace (/(/.)? b/, function ($ 0, $ 1) {return $ 1? $ 0 :'c ';}) //foo.bar|caz//this 메소드는 비교적 간단한 시나리오에 유용하며 Lookahead //와 함께 사용될 수 있습니다. //'tttt'.replace(/(?<=T)t/g, 'x') 결과는 'txxx''tttt'.예 3
$ & Symbol의 사용
함수 ESCAPEREGEXP (str) {return str.replace (/[abc]/g, "($ &)";} var str = 'a12b34c'; console.log (EscapeRegexp (str)); // (a) 12 (b) 34 (c)