2011-02-24 4 views

답변

59

PHP의 preg_quote 기능의 PHP.JS의 구현 한 번 봐, 그건 당신이 무엇을해야한다 :

http://phpjs.org/functions/preg_quote:491

특수 정규 표현식 문자는 다음과 같습니다 . \ + * ? [^] $ () { } = ! < > | : -

+0

Naaah 나는 준비된 패턴으로 수동으로 설정했습니다. 어쩌면 나중에 파일 크기를 줄이는 기능을 만들 것입니다. 그래서 나는 + = 잊었다! <> : 그리고 그것이 전체 목록입니까? 고마워요;) – Somebody

+0

당신이 말하는 것을 알 것 같네요. :) 좋아, 대답은 다음, 조금 나중에 받아 들일거야, 아마도 누군가가 추가해야 폐쇄됩니다. :) – Somebody

+2

str_replace를 사용하여 이스케이프하는 경우 \ first를 이스케이프 처리해야합니다. 위의 목록에서 a. \., \로 바뀝니다. 그런 다음 \\.로 대체됩니다. 이는 원하지 않는 것입니다. 물론 –

9

this site에 따르면, 탈출 문자 목록은

이다, 백 슬래시 \, 캐럿 ^, 달러 기호 $, 기간 또는 점, 수직 막대 또는 파이프 기호 |., 물음표?, 별표 또는 별 *, 더하기 기호 +, 여는 둥근 대괄호 (및 닫는 둥근 대괄호).

그 이외에, 당신은 문자열의 끝과 자바 스크립트 인터프리터에 의해 해석되는 문자를 이스케이프 할 필요가, 그 ' 또는 " 중 하나입니다.

+0

Dunno는 그 사이트를 어떻게 만들지. RegEx의 많은 맛을 다루며이 목록 중 어느 것이 적용되는지는 명시하지 않습니다. – BaldEagle

3

하이픈 (-)은 대괄호 안에 있고 처음 또는 끝에 위치하지 않을 때 이스케이프해야합니다. 예 -

[a-z0-9\-_]+ 

탈출을 필요 - 탈출하지 필요

[a-z0-9_-]+ 
1

에 대한 타투 Ulmanen의 대답 떨어져 기반을, C#에서 내 솔루션이 양식에 나섭니다 :

private static List<string> RegexSpecialCharacters = new List<string> 
{ 
    "\\", 
    ".", 
    "+", 
    "*", 
    "?", 
    "[", 
    "^", 
    "]", 
    "$", 
    "(", 
    ")", 
    "{", 
    "}", 
    "=", 
    "!", 
    "<", 
    ">", 
    "|", 
    ":", 
    "-" 
}; 


foreach (var rgxSpecialChar in RegexSpecialCharacters) 
       rgxPattern = input.Replace(rgxSpecialChar, "\\" + rgxSpecialChar); 

주를이 나는 '\'와 '.'의 위치를 ​​바꿨습니다. 처음에는 슬래시를 처리하지 않으면 '\'의 두배가됩니다.

0

저는 ESLint의 reg-ex에 대한 "쓸데없는 탈출"설정과 관련하여이 목록을 찾고있었습니다. 언급 된 이러한 문자 중 일부는 JS에서 정규 표현식으로 이스케이프 처리 할 필요가 없다는 것을 알았습니다. 다른 답변에서 더 긴 목록은 PHP에 대한 것이므로 추가 문자가 이스케이프되어야합니다.

은 약 절반 아래로 내려갔습니다. 사용자 not-an-aardvark은 문제에서 참조 된 문자가 이스케이프해야하는 문자 인 이유를 설명합니다. 자바 스크립트에서

, 이스케이프 할 필요가있는 문자는 syntax character, 또는 이들의 하나입니다

^ $ \ . * + ? () [ ] { } |

내가 위의 링크 된 GitHub의 문제에 대한 응답은 "부록 B"의미에 대한 설명을 포함 (나는 이것에 대해 많이 알지 못함) 위에서 언급 한 문자 중 4 개를 UNescaped로 지정할 수 있습니다 : ) ] { }.

또 하나주의해야 할 점은 이스케이프가 필요없는 문자를 이스케이프하면 아무런 해를 입지 않을 것입니다 (이스케이프 문자를 이스케이프하려는 경우 제외). 따라서, 나의 개인적인 경험 법칙은 다음과 같습니다. "의심 스러울 때 탈출"

관련 문제