文字列に特定の構造がある場合は、preg_match()
でphpでどのように確認できますか?たとえば、文字列は次のとおりです。私は、文字列が重要です;
文字列に特定の構造があるかどうかを調べるpreg_match
で区切られた文字列のnの数字が続く:
が続く文字列と何かで始まるかどうかを確認したい
options:blue;white;yellow;
- 文字列はキリル文字であってもよく、ラテン文字だけではない
文字列に特定の構造がある場合は、preg_match()
でphpでどのように確認できますか?たとえば、文字列は次のとおりです。私は、文字列が重要です;
文字列に特定の構造があるかどうかを調べるpreg_match
で区切られた文字列のnの数字が続く:
が続く文字列と何かで始まるかどうかを確認したい
options:blue;white;yellow;
- 文字列はキリル文字であってもよく、ラテン文字だけではない
これは、文字列を検証します、あなたの質問に記載されている唯一の制限が必要とされていると仮定:
$number = 3;
$regex = sprintf('/^[^:]+:(?:[^;]+;){%d}$/', $number);
if (preg_match($regex, $string)) {
echo "It matches!";
} else {
echo "It doesn't match!";
}
ここ
はphp -a
を使用して、アクションでの例です:
php > $number = 3;
php > $regex = sprintf('/^[^:]+:(?:[^;]+;){%d}$/', $number);
php > if (preg_match($regex, 'options:blue;white;yellow;')) {
php { echo "It matches!";
php { } else {
php { echo "It doesn't match!";
php { }
It matches!
php > if (preg_match($regex, 'options:blue;white;yellow;green;')) {
php { echo "It matches!";
php { } else {
php { echo "It doesn't match!";
php { }
It doesn't match!
あなたはこの正規表現hereを視覚化することができます。
/.../ Start and end of the pattern.
^ Start of the string.
[^:]+ At least one character that is not a ':'.
: A literal ':'.
(?:[^;]+;){N} Exactly N occurrences of:
[^;]+ At least one character that is not a ';'.
; A literal ';'.
$ End of the string.
#私はそれをテストした後、私はそれが部分的に動作することを確認することができます。 $ number = 3はオプションの数を定義していると思いますが、n個のオプションがあり、タスクが複雑になります。 – Europeuser
分かりません... '$ number'はあなたの' n'です。あらかじめ何を知っているか分かっているなら、その数に '$ number'を設定してください。それとも、あなたが何をするのか分からないのですか? – Will
yesそうですが、これを次のように変更して整理しました:$ number = count(explode( ';'、rtrim($ _ POST ['addoptions']、 ";")));それは期待どおりに働いています、ありがとう! – Europeuser
文字列を ';'で区切って指定しますか?エンコーディングUTF-8ですか? – Will
はい、utf-8はエンコーディングです – Europeuser
文字列に数字や記号を含めることはできますか? – Will