2011-10-18 4 views
-2

私は私のpreg_match()に正規表現を必要とし、それは(許可)次の文字をプリプレグする必要がありますするpreg_match一部の文字

  • 終止符:

    文字列には、文字、数字、および次の区切り文字を含めることができます(。)

  • カンマ(、)
  • ダッシュ( - )
  • アンダースコア(_)

私はそれが正規表現でどのようにすることができるのか分かりませんが、私は方法があると思います!

+3

pregの構文についてもっと知る方法があれば::P – Rijk

+0

はい、これは可能です。 http://www.php.net/manual/en/regexp.reference.character-classes.phpまたはツールの一部を参照してください。http://stackoverflow.com/questions/32282/regex-testing-tools – mario

+2

私が見つけたものを見てください:http://www.regular-expressions.info/ –

答えて

2
^[\p{L}\p{N}.,_-]*$ 

は、(Unicode)文字、数字または「特殊文字」のみを含む文字列と一致します。 [...]は、character classで、「ここに含まれる文字の1つ」を意味します。あなたは仕事に、このため/u Unicodeの修飾子を使用する必要があります:

preg_match(`/^[\p{L}\p{N}.,_-]*$/u', $mystring); 

あなただけのASCII文字を気にしている場合、それは簡単です:

^[\w.,-]*$ 

または、PHPで:

preg_match(`/^[\w.,-]*$/', $mystring); 
関連する問題