#php
#php
Вопрос:
Я хочу удалить шаблон из выражения в php
$string="[हो_VAUX, अस_VAUX] : 837";
Я хочу получить шаблон हो,अस
в качестве ответа.
Итак, я сделал это
$str=preg_replace('/[ _A-Z/', '', $string);//removes backspace characters
$str=strstr($str, "_", true); //remnoves all the characters of the right to _.
Я хочу получить हो,अस
. Пожалуйста, помогите мне разобраться в этом. हो,अस
Ответ №1:
Почему бы не использовать это?
$str=preg_replace('/w|[|]|:|s/', '', $string);
выводит
हो,अस
Объяснение
w = 0-9a-zA-Z_
| = or
[ = [
| = or
] = ]
| = or
: = :
| = or
s = ' '
я даже немного уменьшил его.
И если вы действительно хотите пофантазировать
$str = preg_replace("/^.*?(हो).*?(अस).*?$/", "1,2",$string);
Комментарии:
1. 1 Это, вероятно, самый надежный способ сделать это OP.
Ответ №2:
Посмотрите, это позволит выполнить работу, но это никоим образом не самый эффективный способ сделать это:
$string="[हो_VAUX, अस_VAUX] : 837";
$str=preg_replace('/[a-zA-Z0-9] /', '', $string);//removes backspace characters
$str = str_replace(array(':', '_', ']', '[', ' '), '', $str);
echo $str;
Что дает вам:
हो,अस
Объяснение:
- Первая замена —
preg_replace()
удаляет все буквенно-цифровые символы - Вторая замена —
str_replace()
удаляет предоставленный массив нежелательных символов из строки.
Ответ №3:
Если вы получите ответ, просто удалив все буквенно-цифровые и несколько выбранных символьных символов, следующий код выполнит всю работу:
$answer = preg_replace('/\w|[][ :]/', '', $string);
// ^- add more symbols here
Комментарии:
1. Спасибо вам, ребята. Не могли бы вы, пожалуйста, помочь мне, какая книга хороша для понимания регулярных выражений php.
Ответ №4:
Попробуйте эту единственную строку,
$testString = "[हो_VAUX, अस_VAUX] : 837";
echo preg_replace("/[A-Z0-9][_:s]/", "", $testString);
Комментарии:
1. забыл пробел s, в выходных данных все еще есть пробел