2010-07-08 5 views
44

일치하는 정규식은 무엇입니까 xxx[any ascii char here, spaces included]+xxx?
나는 xxx[(\w)(\W)(\s)]+xxx을 시도하고 있지만 작동하지 않는 것 같습니다.정규식 임의의 문자

답변

55

당신이 정말로 어떤 및 ASCII (안 예를 들어, 모든 유니 코드 문자)를 의미하는 경우 :

xxx[\x00-\x7F]+xxx 

자바 스크립트 예 :

var re = /xxx[\x00-\x7F]+xxx/; 

re.test('xxxabcxxx') 
// true 

re.test('xxx☃☃☃xxx') 
// false 
+0

이 내가 생각했던대로 작동하지 않는 것 . 이는 시각적으로 인쇄되거나 입력 된 문자 자체가 아닌 ASCII 문자의 BYTE 표현과 일치합니까? – anon58192932

+0

@advocate, 가능합니다. 어떤 언어로 테스트 했습니까? 그럴 수 있습니다. –

+0

오 프린트 된 버전의 ASCII 문자와 일치하는 것을 찾고 싶습니다. – anon58192932

4

.+ 대신 [(\w)(\W)(\s)]+의를 사용해보십시오.

실제로 필요한 것 이상을 포함합니다. ASCII는 처음 128 자만 정의합니다. 모든 문자에 대한

0

. 스탠드, 그래서 당신은이처럼 정규식 쓰기 :

xxx.+xxx 
0

당신이 "아스키 문자"로 무슨 뜻인지에 따라 단순히 US-ASCII 이후

xxx.+xxx 
7

을 시도 할 수 문자는 0x00-0x7F (0-127)의 바이트 범위에 있습니다.

xxx[\x00-\x7F]+xxx 
23

그것은 물결에 공간에서 모든 ASCII 문자와 일치 클래스

+2

. . 구현 된 경우 – mykhal

+0

@catwalk 당신은 오늘 나의 영웅입니다! 웬일인지 \ x00- \ x7F를 받아들이지 않았지만 [: ascii :]가 걸렸습니다. 감사! – n0nag0n

+4

[[: ascii :]]는 인쇄 할 수없는 문자라도 ASCII 문자와 일치하지만 [- ~]는 ASCII의 인쇄 가능한 부분 집합과 일치합니다. – elolos

40
[ -~] 

seen here[[:ascii:]]

그래서 당신의 구현은 다음과 같습니다

xxx[ -~]+xxx 
+0

허용 된 대답이 ASP.NET MVC의 [RegularExpression] 특성과 작동하지 않아 완벽합니다. 유니 코드 문자로 렌더링되기 때문에 유효성 검사가 중단됩니다. – Art

+2

매우 우아한 해결책, 고도로 읽기 쉽고 의미 상 정확하게 내가 찾고있는 해결책. –

+0

@Art 이것은 [RegularExpression] 속성을 가지고 작동하지 않습니다 ... 작동시키기 위해 특별히해야 할 일이 있습니까? 내 속성은 단지 ''이지만 "asdf"는 허용하지 않습니다. – Zack

관련 문제