2011-02-11 4 views
0

내 레일 애플 리케이션에 문자열을 검증해야합니다. 생성시 첫 번째 문자가 비어 있거나 특수 문자로 구성된 문자열을 가질 수 없습니다.문자열 첫 번째 문자에 대한 Regex

예 : "file"및 "% file"은 (는) 유효하지 않습니다. 정규식을 사용해야하는 이유를 알고 있습니까?

감사합니다.

답변

3

다음 정규식은 '_'와 일치합니다 :

^[0-9a-zA-Z] 

:

^\w 

단지 문자 또는 숫자를 제한하려면 ^은 문자 클래스 ([...]) 외부에있을 때 정규 표현식에서 특별한 의미를 갖습니다. 실제로 문자열과 일치하지 않고 문자열의 시작과 일치합니다.

당신은 당신이 그것을 부정하는 문자 클래스의 내부 ^을 배치 할 수 있습니다, 그래서 이전 표현 될 수있는 모든 유효하지 않은 문자열을 일치 시키려면 :

^[^\w] 

또는

^[^0-9a-zA-Z] 
+0

또한 [[^ \ w]는'\ W'와 동일합니다. –

+0

이것은 정확하게 내가 필요로했던 것이었다! 고마워요! – rodrigoalves

0

정규식

^[^[:punct:][:space:]]+ 

해야 하는가 당신이 원하는 것을 할. 나는 Ruby가 제공하는 정규 표현식과 POSIX 클래스 지원에 대해 100 % 확실하지 않으므로 이에 대한 귀하의 마일리지가 다를 수 있습니다. 문자열의 첫 번째 문자는 문자, 숫자, 또는 경우

1

좋은에게 Ruby 정규 표현식을 대화식으로 시도하는 곳은 Rubular입니다. 내가 준 링크는 @Dave G가 몇 가지 테스트 예제와 함께 제공 한 답변을 보여줍니다 (그리고 언뜻보기에는 작동하는 것 같습니다). 자신을 더 설득하기 위해 예제를 확장 할 수 있습니다.

관련 문제