2012-04-20 2 views
-3

계정 로그인에 맞는 정규식이 필요합니다. 내가 좋아하는 것이름의 정규식

기호는 일치합니다 : 나는 발견이

Test 
testtest 
Special Char Testó 
Special Char Test 
Test Test 
Hai hai 
Test-ó 
Test.ó 
Testó 
Another Test 12345 
Another.Test.12345 

가장 가까운 정규 표현식은 다음과 같습니다 ^(?=[^ ])[a-zA-Z0-9 +&-]+(?<=\S)$. 그러나 여전히 위의 모든 예와 일치하지는 않습니다.

라이브 미리보기 : http://regexr.com?30ncg

여기 야해 일치하는 모든 기호입니다

Test? 
Test$ 
Test= (and all special characters like those @#$%^&*=). 
Test[] 
Test> 
Test< 
  • 그래서 그 basicly 작업 발견은, 그러나 Another.Test.12345 또는 Special Char Testó 같은 단어를 일치 나던.

나는 단지, 숫자, 점 및 공간 (특수 ółążźćęąäöüß 같은 것들을 포함) 단어 문자를 일치합니다.

나는 많은 것을 탐색 해 왔지만 위의 예제에서 이보다 나은 정규 표현식을 찾지 못했습니다.

+0

정확히 일치하는 것을 이해할 수 없습니까? 그냥 모든 기호? 당신이 어울릴 필요가없는 것을 나에게 보여줘. –

+1

'일치시키고 싶은 기호 :'... 그냥 전부. – Cyclone

+1

나는이 질문이 이미 세 가지 상음을 어떻게 가지고 있는지 이해하지 못한다. - 당신은 당신이 성취하고자하는 것을 정교하게 다룰 필요가있다. 입력 한 내용은 무엇입니까? 정확하게 일치하는 대상은 무엇입니까? 지금까지 당신이 말한 것은 "나는 모든 기호를 일치시키고 싶다"입니다. 그래서'(. *) '를 찾고 있습니까? –

답변

1

당신은 당신이 사용한다,이 정규식 당신이 당신의 질문에 나와있는 단지 문자와 일치 할 경우 문제가 가지 불분명 나에게 (그리고 많은에 대한 한, 그러나

/(?:\A|(?<=[^a-zA-Z0-9\+\&\-ółążźćęąäöüß\.\s]))([a-zA-Z0-9\+\&\-ółążźćęąäöüß\.\s]+)(?:(?=[^a-zA-Z0-9\+\&\-ółążźćęąäöüß\.\s])|\z)/ 

을), 나는 모든 "문자 클래스"단일 코드 유니 코드 문자와 일부 특수 문자와 일치하는 정규 표현식을 사용하도록 제안하고자합니다. 이러한 정규 표현식은 다음과 같다 :

/(?:\A|(?<=[^\p{L}\+\-\&\.\s]))([\p{L}\+\-\&\.\s]+)(?:(?=[^\p{L}\+\-\&\.\s])|\z)/ 
+0

아주 좋아 보인다! 고맙습니다. – Cyclone

+1

다른 비 ASCII 유니 코드 문자는 어떻습니까? –

+0

@JackManey - OP가 요구하는 정규 표현식 세트를 사용 했으므로 어떤 의미인지 또는 무엇을 제안하는지 구체적으로 설명해 주실 수 있습니까? 고맙습니다. –

0

나는이 게시하기 전에 나는 당신의 편집을 읽어 보지 않았 [참고].

나는 PHP를 사용하고 있다고 가정합니다. 이것은 나를 위해 일했다 :

$a = 'Test 
testtest 
Special Char TestóááÓ 
Special Char Testß 
Test Test 
Hai hai 
Test-ó 
Test.ó 
Testó 
Another Test 12345 
Another.Test.12345'; 

preg_match_all('/^(?=[^ ])[\w \.-\p{L}]+$/m', $a, $ms); 

var_dump($ms); 

그것은 모든 라인과 일치했다. \p{L}은 유니 코드 문자를 읽음으로 일치시킵니다. http://php.net/manual/en/regexp.reference.unicode.php

+0

실제로'\ p {L}}는 OP가 요청하지 않은 많은 문자와 일치 할 것입니다. ** 모든 ** "문자"** 클래스 유니 코드 단일 코드 문자와 일치합니다. 예를 들어, 모든 스페인어 라틴 문자, 이탈리아어 등 ... –

+0

예, PHP를 사용하고 있습니다. 그러나 http://gskinner.com/RegExr/?30nc4에서 작동하지 않는 이유는 무엇입니까? – Cyclone