1

私が今持っているもの: preg_match("[\W|_]",$string)、単語以外の文字とアンダースコアに一致します。\wただし、アンダースコアではなく、文字列の途中にある個々のスペースを含む文字列のみを一致させたいと考えています ($string任意の数のスペースで開始または終了するのではなく)。ご協力いただきありがとうございます!

一致する必要がある例:Example 123またはOne Two Three.
拒否する必要がある例:example&または (1 つ以上のスペースで始まり、"Example" と "of" の間の複数のスペース) Example of foo.

4

1 に答える 1

3

ああ、一致の結果を取得する必要はありません。文字列が何らかのパターンに一致するかどうかをテストするだけです。それは...で行うことができます

$pattern = '/^[A-Z0-9](?:[A-Z0-9 ]*[A-Z0-9])?$/i';

...しかし、ASCII範囲外の文字をカバーしたい場合、それは失敗する運命にあります。代わりにこれを使用する必要があります。

$pattern = '/^[\p{L}0-9](?:[\p{L}0-9 ]*[\p{L}0-9])?$/u';

デモをチェックして、実際の動作を確認してください。

于 2013-06-03T15:22:04.983 に答える