2013-10-21 4 views

답변

4

정규식은 alternation 운영자 |로 구분 된 문자 중 하나와 일치의 의미를 가지고있는 여분의 \로 이스케이프해야합니다. 이 ($*metacharacters 정규식 때문에 \n 또는 줄 바꿈 및 캐리지 리턴에 대한 \r, 또는 \$ 리터럴 달러 기호 및 \* 같은 리터럴 별표를위한) 몇 가지 특수 문자가 있지만, 그 이외의, 그것은 아주 간단합니다. 유효한 문자 목록에서 하나의 문자와 일치를위한 말했다

하는 character class는 일반적으로 더 나은 선택입니다뿐만 아니라 메타 탈출 덜 필요가 있기 때문에 : 정규식에서

new Regex(@"[\n\r\\<>*!$%;]"); 
+0

+1 문자 클래스로 줄이면 –

2
그것은 나와있는 특수 문자와 일치하려고합니다

: \n, \r는, \는, <는, >는, *!는, $%|는 정규식 OR 연산자입니다.

일부 문자들은 정규식 lanugage (\, $, ...)

2

|은 교대 연산자입니다. A|BA 또는 B과 일치한다는 것을 의미합니다. 또한 같은 것을 의미하는 문자 클래스 인 [AB]을 사용하여 작성할 수도 있습니다.

character class을 사용하는 이점은 *처럼 외부에서 수행해야하는 정규식 메타 문자를 이스케이프 처리 할 필요가 없다는 것입니다. 따라서 정규 표현식은 다음과 같이 짧게 할 수 있습니다.

new Regex(@"[\n\r\\<>*!$%;]"); 
관련 문제