2012-04-20 13 views
-3

アカウントのログインに一致する正規表現が必要です。名前の正規表現

Iが一致したい記号:

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.12345Special Char Testóのような単語と一致doesntの。

単語の文字(ółążźćęąäöüßのような特殊な文字を含む)、数字、ドット、スペースに一致するようにします。

私はたくさんの検索をしてきましたが、上の例ではこれよりも良い正規表現が見つかりませんでした。

+0

ここで正確に一致させたい内容はわかりません。ちょうどすべてのシンボル?あなたがマッチする必要がないものを私に挙げてください。 –

+1

'私がマッチさせたいシンボル:' ...それらのすべて。 – Cyclone

+1

私はこの質問にすでに3つのアップボントがどのようにあるのか理解していません。達成しようとしていることを詳しく説明する必要があります。あなたの入力セットは何ですか? *正確にあなたは一致させようとしているものは何ですか?これまでに言ったことは、「すべてのシンボルに一致させたい」ということだけです。だから、 '(。*)'を探しているのですか? –

答えて

1

あなたは、あなたの質問に記載されているだけで文字を一致させたい場合は、あなたがこの正規表現を使用する必要があります質問は私にとって不明確の種類(およびたくさんあるとして、しかし

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

は、他のユーザーの)、私はあなたにすべての "文字クラス"の単一コードのUnicode文字といくつかの特殊文字と一致する正規表現を使用することをお勧めしたいと思います。このような正規表現は次のようになります。

/(?:\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が要求しなかった多くの文字と一致します。-itはすべて** "letter" **クラスのunicodeのシングルコード文字と一致します。例えばスペイン語のラテン文字、イタリア語など –

+0

はい、私はPHPを使用していますが、なぜここでは動作しませんhttp://gskinner.com/RegExr/?30nc4? – Cyclone