다음 정규식을 사용하고 있습니다.
^[a-zA-Z0-9\',!;\?\$\^:\\\/`\|~&\" @#%\*\{}\(\)_\+\.\s=-]{1,1000}$
나는 그것이 추악하다는 것을 알고 있지만 지금까지 그것이 탈출했기 때문에 내가 생각하는 것처럼 백 슬래시가 허용되지 않는 것 이외의 목적에 부합 하지만 동일한 결과 \\
대신 시도 했습니다 \\\
. 어떤 아이디어?
다음 정규식을 사용하고 있습니다.
^[a-zA-Z0-9\',!;\?\$\^:\\\/`\|~&\" @#%\*\{}\(\)_\+\.\s=-]{1,1000}$
나는 그것이 추악하다는 것을 알고 있지만 지금까지 그것이 탈출했기 때문에 내가 생각하는 것처럼 백 슬래시가 허용되지 않는 것 이외의 목적에 부합 하지만 동일한 결과 \\
대신 시도 했습니다 \\\
. 어떤 아이디어?
답변:
당신은 프로그램 내에서 문자열이 퍼팅하는 경우, 당신은 실제로 그것을 "드 탈출"할 때 문자열 파서 그 두 가지를 제거하기 때문에 (네 개의 백 슬래시를 사용해야 할 수도 문자열 , 다음 정규식은 두 가지가 필요합니다 이스케이프 정규식 백 슬래시).
예를 들면 :
regex("\\\\")
다음과 같이 해석됩니다.
regex("\\" [escaped backslash] followed by "\\" [escaped backslash])
다음과 같이 해석됩니다.
regex(\\)
단일 백 슬래시와 일치하는 정규식으로 해석됩니다.
언어에 따라 이스케이프 시퀀스를 구문 분석하지 않는 다른 형식의 따옴표를 사용할 수 있습니다. 예를 들어 Python에서 :
re.compile(r'\\')
r
따옴표의 전면은 그것을 만드는 원료 되지 해석 백 슬래시 이스케이프를하지 문자열입니다.
new RegExp('\\\\\\d');
..
백 슬래시 \
는 정규식의 이스케이프 문자입니다. 따라서 이중 백 슬래시는 실제로 단일 문자 백 슬래시를 의미합니다.
\ (backslash) followed by any of [\^$.|?*+(){} escapes the special character to suppress its special meaning.
에서 http://www.regular-expressions.info/charclass.html :
문자 클래스 내의 유일한 특수 문자 또는 메타 문자는 닫는 대괄호 (]), 백 슬래시 (\\), 캐럿 (^) 및 하이픈 (-)입니다. 일반적인 메타 문자는 문자 클래스 내의 일반 문자이며 백 슬래시로 이스케이프 할 필요가 없습니다. 별표 또는 더하기를 검색하려면 [+ *]를 사용하세요. 문자 클래스 내에서 일반 메타 문자를 이스케이프하면 정규식이 제대로 작동하지만 가독성이 크게 떨어집니다.
문자 클래스 내에 특별한 의미가없는 문자로 백 슬래시를 포함하려면 다른 백 슬래시로 이스케이프해야합니다. [\\ x]는 백 슬래시 또는 x와 일치합니다. 닫는 대괄호 (]), 캐럿 (^) 및 하이픈 (-)은 백 슬래시로 이스케이프하거나 특수한 의미를 갖지 않는 위치에 배치하여 포함 할 수 있습니다. 가독성을 높이기 때문에 후자의 방법을 권장합니다. 캐럿을 포함하려면 여는 괄호 바로 뒤를 제외하고 아무 곳에 나 배치하십시오. [x ^]는 x 또는 캐럿과 일치합니다. 여는 대괄호 또는 부정 캐럿 바로 뒤에 닫는 대괄호를 놓을 수 있습니다. [] x]는 닫는 대괄호 또는 x와 일치합니다. [^] x]는 닫는 대괄호 나 x가 아닌 모든 문자와 일치합니다. 하이픈은 여는 대괄호 바로 뒤, 닫는 대괄호 바로 앞 또는 부정 캐럿 바로 뒤에 포함될 수 있습니다.
정규식을 작성하는 언어는 무엇입니까?