ホームページ >バックエンド開発 >PHPチュートリアル >英語と数字を含む規則的なルールを尋ねます。

英語と数字を含む規則的なルールを尋ねます。

WBOY
WBOYオリジナル
2016-06-23 13:13:111071ブラウズ


小文字の [a から z]、下線 [_]、およびダッシュ [-] は、A と呼ばれるグループであり、グループ A の 1 つ以上のメンバーを含めることができます。
0 ~ 9 の数字は B と呼ばれるグループで、グループ B の 1 つ以上のメンバーを含めることができます。

純粋な A の組み合わせまたは純粋な B の組み合わせが許可されます。たとえば、b,aaa,a__,a-b,456,000,0 が許可されます。
AB の組み合わせまたは BA の組み合わせが許可されます。たとえば、a4,5b、ag_d87,7588__faae が許可されます。
ABA の組み合わせ、または BAB の組み合わせは許可されません。たとえば、aa7_f、3322a_4234、as7gwe9fwef、28_957a8ff927 は許可されません


1 つの正規表現で実行できますか? それとも複数の正規表現で実行できますか?


ディスカッションへの返信 (解決策)

//只允许 AB 或 BA$str = '28_957a8ff927';if(preg_match('#^([a-z_-]+\d+|\d+[a-z_-]+)$#',$str,$m)){	print_r($m);}else{	echo 'failed';}/*尝试用否定环视,但是长度不定,会报错preg_match('#(?<![a-z_-]+)\d+(?![a-z_-]+)#',$str,$m)*/

A = [a-z_-]
B = [0-9]
P = A*B*| B*A *
$pattern = '/[a-z_-]*d*|d*[a-z_-]*/' を取得します

A = [a-z_-]
B = [0-9]
P = A*B*|B*A*
Get $pattern = '/[a-z_-]*d*|d*[a-z_-]*/'


うまくいかないようです。 。 。 。 。 。 。

前にこのように書きました /^([0-9]*[a-z]*|[a-z]*[0-9]*)$/,,, これもうまくいかないようです。 。 。 。 a4 が表示されたら

//只允许 AB 或 BA$str = '28_957a8ff927';if(preg_match('#^([a-z_-]+\d+|\d+[a-z_-]+)$#',$str,$m)){	print_r($m);}else{	echo 'failed';}/*尝试用否定环视,但是长度不定,会报错preg_match('#(?<![a-z_-]+)\d+(?![a-z_-]+)#',$str,$m)*/




うまくいかないようです、abc または 123 を確認してください

$pattern = '/(^[a-z_-]*\d*$)|(^\d*[a-z_-]*$)/';$data = array(  'b',  'aaa',  'a__',  'a-b',  '456',  '000',  '0',  'a4',  '5b',  'ag_d87',  '7588__faae',  'aa7_f',  '3322a_4234',  'as7gwe9fwef',  '28_957a8ff927',);foreach($data as $str)  printf("%d %s\n", preg_match($pattern, $str), $str); 
1 b1 aaa1 a__1 a-b1 4561 0001 01 a41 5b1 ag_d871 7588__faae0 aa7_f0 3322a_42340 as7gwe9fwef0 28_957a8ff927

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。