답변
PHP의 preg_quote
기능의 PHP.JS의 구현 한 번 봐, 그건 당신이 무엇을해야한다 :
특수 정규 표현식 문자는 다음과 같습니다 . \ + * ? [^] $ () { } = ! < > | : -
Naaah 나는 준비된 패턴으로 수동으로 설정했습니다. 어쩌면 나중에 파일 크기를 줄이는 기능을 만들 것입니다. 그래서 나는 + = 잊었다! <> : 그리고 그것이 전체 목록입니까? 고마워요;) – Somebody
당신이 말하는 것을 알 것 같네요. :) 좋아, 대답은 다음, 조금 나중에 받아 들일거야, 아마도 누군가가 추가해야 폐쇄됩니다. :) – Somebody
str_replace를 사용하여 이스케이프하는 경우 \ first를 이스케이프 처리해야합니다. 위의 목록에서 a. \., \로 바뀝니다. 그런 다음 \\.로 대체됩니다. 이는 원하지 않는 것입니다. 물론 –
하이픈 (-)은 대괄호 안에 있고 처음 또는 끝에 위치하지 않을 때 이스케이프해야합니다. 예 -
[a-z0-9\-_]+
탈출을 필요 - 탈출하지 필요
[a-z0-9_-]+
에 대한 타투 Ulmanen의 대답 떨어져 기반을, C#에서 내 솔루션이 양식에 나섭니다 :
private static List<string> RegexSpecialCharacters = new List<string>
{
"\\",
".",
"+",
"*",
"?",
"[",
"^",
"]",
"$",
"(",
")",
"{",
"}",
"=",
"!",
"<",
">",
"|",
":",
"-"
};
foreach (var rgxSpecialChar in RegexSpecialCharacters)
rgxPattern = input.Replace(rgxSpecialChar, "\\" + rgxSpecialChar);
주를이 나는 '\'와 '.'의 위치를 바꿨습니다. 처음에는 슬래시를 처리하지 않으면 '\'의 두배가됩니다.
저는 ESLint의 reg-ex에 대한 "쓸데없는 탈출"설정과 관련하여이 목록을 찾고있었습니다. 언급 된 이러한 문자 중 일부는 JS에서 정규 표현식으로 이스케이프 처리 할 필요가 없다는 것을 알았습니다. 다른 답변에서 더 긴 목록은 PHP에 대한 것이므로 추가 문자가 이스케이프되어야합니다.
은 약 절반 아래로 내려갔습니다. 사용자 not-an-aardvark
은 문제에서 참조 된 문자가 이스케이프해야하는 문자 인 이유를 설명합니다. 자바 스크립트에서
, 이스케이프 할 필요가있는 문자는 syntax character, 또는 이들의 하나입니다
^ $ \ . * + ? () [ ] { } |
내가 위의 링크 된 GitHub의 문제에 대한 응답은 "부록 B"의미에 대한 설명을 포함 (나는 이것에 대해 많이 알지 못함) 위에서 언급 한 문자 중 4 개를 UNescaped로 지정할 수 있습니다 : ) ] { }
.
또 하나주의해야 할 점은 이스케이프가 필요없는 문자를 이스케이프하면 아무런 해를 입지 않을 것입니다 (이스케이프 문자를 이스케이프하려는 경우 제외). 따라서, 나의 개인적인 경험 법칙은 다음과 같습니다. "의심 스러울 때 탈출"
- 1. 입력하기 전에 tabBar보기를로드하십시오.
- 2. 정규식에서 문자 그대로 이스케이프해야하는 문자는 무엇입니까?
- 3. HTML에서 이스케이프해야하는 문자는 무엇입니까?
- 4. 데이터를 입력하기 전에 데이터베이스에서 중복 확인
- 5. Lex/Yacc : 입력하기 전에 메시지 인쇄
- 6. 범위를 입력하기 전에 DbTransaction을 생성하는 TransactionScope
- 7. regex에 대한 도움말
- 8. CodeIgniter : 입력하기 전에 중복 된 DB 테이블을 어떻게 확인합니까?
- 9. MySQL에 Eth (Ð) 입력하기
- 10. JLabel의 (나는 기능 라벨에 입력하기 전에 내 기능의
- 11. 사용자가 데이터를 입력하기 전에 텍스트 필드에 텍스트를 표시하는 방법
- 12. Map.isEmpty()는 while (Iterator.hasNext()) 루프를 입력하기 전에 이해가됩니까?
- 13. php : mysql 데이터베이스에 데이터를 입력하기 전에 입력 데이터를 지우십시오.
- 14. PHP - Regex에 대한 도움이 필요합니다.
- 15. 파서 DOM 및 REGEX에 관해서
- 16. "큰 이미지 목록"을 다운로드하기 전에 페이지의 모든 css & js를로드하십시오.
- 17. 파일에 사용자 입력하기
- 18. 정확한 수치를 파이썬에 입력하기
- 19. DataGridView에 바인딩하기 전에 목록 필터링
- 20. 모든 문자 후 "&"
- 21. 프로세스의 표준 입력에 반복적으로 입력하기
- 22. 보안 문자 또는 질문 목록?
- 23. 여러 언어의 이스케이프 문자 목록
- 24. <key> 이벤트 파이썬으로 입력하기 위젯
- 25. MySQL은 전에 모든 것을 선택합니다.
- 26. 모든 페이지로드 전에 세션 확인?
- 27. 모든 SVN 저장소 목록
- 28. 모든 gcc 진단 목록
- 29. navigator.language 모든 언어 목록
- 30. 모든 커밋 목록 SHA1_HASH
이 목록은 찾기가 놀랍도록 어려웠습니다. – dwjohnston