Я просто задаюсь вопросом, как я мог удалить текст между рядом круглых скобок и самими круглыми скобками в php.
Пример:
ABC (Test1)
Я хотел бы, чтобы это удалило (Test1) и только покинуло ABC
Спасибо
$string = "ABC (Test1)";
echo preg_replace("/\([^)]+\)/","",$string); // 'ABC '
preg_replace
- регулярное выражение, заменяющее рутину на perl. В этом скрипте выполняется сравнение всех вхождений в открывающиеся круглые скобки, за которыми следует любое количество символов , а не в закрывающиеся круглые скобки, за которыми снова следует закрывающаяся скобка, а затем удаляется:
распад регулярного выражения:
/ - opening delimiter (necessary for regular expressions, can be any character that doesn't appear in the regular expression
\( - Match an opening parenthesis
[^)]+ - Match 1 or more character that is not a closing parenthesis
\) - Match a closing parenthesis
/ - Closing delimiter
без Regex
$string="ABC (test)"
$s=explode("(",$string);
print trim($s[0]);
Люди, регулярные выражения не могут быть использованы для разбора нерегулярных языков. Нерегулярные языки - это те, которые требуют уточнения состояния (то есть вспоминание, сколько скобок в настоящее время открыты).
Все вышеперечисленные ответы потерпят неудачу в этой строке: «ABC (Hello (World) Как вы)».
Прочитайте анализ HTML HTML HTML HTML: https://blog.codinghorror.com/parsing-html-the-Thulhu-way/ , а затем используйте либо под рукой написанный парсер ( Структура сквозь символы в строке см., Если символ является скобками или нет, поддерживать стек) или используйте Lexer / Parser, способный разбирать в контексте язык.
Также см. Эта статья Википедии на «языке правильно подобранной скобки:» https://en.wikipedia.org/wiki/dyck_language