私は2つの正規表現があります。Laravel - アサーション複数の正規表現
'/^(?:0(?:21|9[0-9]))?[0-9]{8}$/'
そして
'/(0|\\+98 | 98)?([ ]|,|-|[()]){0,2}9[1|2|3|4]([ ]|,|-|[()]){0,2}(?:[0-9]([ ]|,|-|[()]){0,2}){8}/'
は私がアサーション:: Laravelで正規表現メソッドを使用します。ここではその方法は次のとおりです。
Assertion.php:アサーションで複数の正規表現を使用して確認する方法
public static function regex($value, $pattern, $message = null, $propertyPath = null)
{
static::string($value, $message, $propertyPath);
if (! preg_match($pattern, $value)) {
$message = sprintf(
$message ?: 'Value "%s" does not match expression.',
static::stringify($value)
);
throw static::createException($value, $message, static::INVALID_REGEX, $propertyPath, array('pattern' => $pattern));
}
return true;
}
::正規表現($電話、$の正規表現)。?
私は$の正規表現を初期化するために使用:実は、私はエラーを与えた
$regex = '/^(?:0(?:21|9[0-9]))?[0-9]{8}$/ | /(0|\\+98 | 98)?([ ]|,|-|[()]){0,2}9[1|2|3|4]([ ]|,|-|[()]){0,2}(?:[0-9]([ ]|,|-|[()]){0,2}){8}/'
:
するpreg_match():未知の修飾子を '|'
ご提案がありますか?
最初の正規表現はアンカーされており、2番目の正規表現はアンカーされていません。それは意図されていますか?はいの場合は[?(?:^(?: 0)(?:21 | 9 [0-9]))[0-9] {8} $ |(0 | \ 98 | 98)? {0,2} 9 [1-4] [ - 、()] {0,2}(?:[0-9] [ - 、()] {0,2}){8 }) '](https://regex101.com/r/1ssxXA/3)。そうでなければ、['^(?:(?: 0)?{0-9} {8} |(0 | \ 98 | 98)?[ - 、 (0)} {0、}({0,2}){8})$ {0,2} 9 [1-4] [ - '](https://regex101.com/r/1ssxXA/2)。 –