Регулярное выражение php для удаления некоторого содержимого в двойных скобках

#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;
  

Что дает вам:

 हो,अस
  

Example


Объяснение:

  • Первая замена — 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, в выходных данных все еще есть пробел