0

ユーザー入力がラテン文字かキリル文字かを確認しようとしています。ラテン文字またはキリル文字のみのテキストをユーザーに入力させたいのですが。一方を許可し、もう一方を拒否するにはどうすればよいですか?ユーザーにラテン文字とキリル文字を混ぜてほしくない。どちらか一方だけです。私は正規表現に不慣れで、それを行う方法を理解できません。これが私がこれまでに持っているものです。

!preg_match("/^([a-zA-Z]+|[\p{Cyrillic}]+)$/u", $inputstr)

また、最初と最後の「/」は何をしますか?そして、「/ u」は何をしますか?どんな助けでも大歓迎です。

4

1 に答える 1

3

リンクされたドキュメントzerkmsは、いくつかの質問に答えます。

まず、/最初と最後は何ですか?これが、正規表現を囲む区切りパターンです。

第二に、何uですか?これは、パターン文字列をUnicodeとして扱うための修飾子です。

1種類の文字のみを許可するには、次のようにグループ化を使用します。/^(?:\p{Cyrillic}+|\p{Latin}+)$/u

これは、キリル文字またはラテン文字のいずれかに一致する必要がありますが、同じ文字列の両方に一致することはできません。

(?:stuff)一致するがキャプチャしないグループ化サブパターンです。

于 2013-02-17T06:46:48.957 に答える