регулярное выражение PHP preg_match
-
18-09-2019 - |
Вопрос
Все еще возникают проблемы с RegEx..Необходимо соответствовать следующим символам
а-я-з9-0 , .' " ( ) _ - :(КОСМОС)
Не все ценности будут иметь все это, но могут иметь их.У меня есть все, кроме круглых скобок, одинарных и двойных кавычек.
/^[\w. ,\/:_-]+$/
ОБНОВЛЯТЬ:
У меня это работает с этим: "/^[\w. ,:()'\"-]+$/"
$val_1 = "Abh acb 123 . - _ 's ";
$val_2 = "Asc";
$val_3 = "234";
$val_4 = "nj%"; // Fail
$val_5 = "Help (me)";
$val_6 = "What's wrong?"; // Fail
$val_7 = "She's here";
$val_8 = "No: 123.00, 432.00";
$val_9 = 'Need to " Double" ';
$var_array = array($val_1, $val_2, $val_3, $val_4, $val_5, $val_6, $val_7, $val_8, $val_9);
foreach ($var_array as $k=>$d) {
if ((preg_match("/^[\w. ,:()'\"-]+$/", $d))) {
echo "Yeah it matches!!!<span style='color:green'>".$d."</span><br />";
} else {
echo "Try again, thie FAILED<span style='color:red'>".$d."</span><br />";
}
}
Спасибо всем за помощь
Решение 4
С помощью других отправок я нашел решение, которое работает:
"/^[\w. ,:()'\"-]+$/"
Спасибо всем за помощь
Другие советы
$pat = "/^[\w. ,\\/:_()'\"-]/";
Чтобы соответствовать всем этим, вам просто нужно:
preg_match("/[a-zA-Z0-9,.'\"()_- :]/", $string);
/^[-a-zA-Z0-9,.'"()_: ]+$/
Это должно сработать.Но если вы поместите его в строку, обязательно избегайте необходимых кавычек.
Не связан с StackOverflow