2012-09-12 2 views
2

그래서 Regex에 익숙하지 않고 튜토리얼과 작동 원리를 보았습니다. ^[a-zA-Z0-9]*$Regex 문자열 확장하기

내가 다음과 같은 문자를 사용할 수 있도록하려면 :

어쨌든, 여기에 내가 가지고있는 현재의 문자열입니다 []()| (공백을 사용할 수 있도록)

편집 : 공백의 경우 다음 문자열을 말할 수 있습니다 : [Something] Something, 괜찮습니까 같은 정규식을 가지고 : ^[][a-zA-Z0-9 ]*$?

+0

그래 "^.*()|[]\-의 문자를 제외한 모든 문자는"그 완벽한 예를 들어, 다음은 유효한 문자 클래스입니다. 마지막으로 문자 그대로, 대시가 문자 클래스의 끝 (또는 시작 부분)에 속한다는 것을 알아야합니다. 그렇지 않으면 범위를 지정하기 때문입니다. –

답변

2

지금처럼 문자 클래스의 시작 부분에 ] 포함 :

^[]a-zA-Z0-9]*$ 

나머지는 삽입 할 수 있습니다 이스케이프 : 당신은 물론 문자 클래스에 대해 얘기하지 않는 경우를 제외하고

^[][()|a-zA-Z0-9]*$ 

.

편집 : 브래킷 브라켓의 표현으로 해석 될 수있는 개방, 그것은 하나 있음을 탈출하는 것이 안전 할 수 있도록 :

^[]\[()|a-zA-Z0-9]*$ 
3

당신은 닫는 대괄호를 이스케이프 할 필요가 ] (만) 문자 클래스 :

^[[\]a-zA-Z0-9()|]*$ 

다른 모든 문자는 이스케이프 필요하지 않습니다 사용해야합니다. AS를


옆으로, 당신은 문자 클래스 내에서 탈출 할 수있는 유일한 문자는 다음과 같습니다 (명백하게)

  • ] 닫기 괄호 (명백하게)
  • \ 백 슬래시
  • ^, 단, 음의 등급이 아닌 경우 (^으로 시작하는 것)
  • - 문자 클래스의 처음 또는 마지막 문자

다른 모든 문자는 문자 클래스에서 사용될 때 정규식의 의미를 상실합니다.

의미
[^^.*()|[\]\\-] 

+1

@ acheong87 아마도 커피가 부족합니까? – Bohemian