2014-11-17 2 views
0

мне нужно проверить, есть ли скобка в строке, чтобы извлечь его содержимое:RegEx: Проверьте скобки, получить текст внутри и удалить полный кронштейн

if (preg_match('/(?<=\()(.+)(?=\))/is', $element, $match)) { 
    array_push($result, $match[1]); 
    // Remove bracket from $element 
} 

Но я также хочу, чтобы удалить весь кронштейн из $ element-var. Как мне это сделать?

$element = "Any text (remove that)"; 
// result should be: 
$match[1] = "remove that"; 
$element = "Any text"; 
+0

Используйте 'preg_replace_callback' и передайте переменную функции обратного вызова, если вы хотите сохранить контент. –

ответ

2

Я предполагаю, что скобки не вложены. Пример с preg_replace_callback:

$result = array(); 
$element = preg_replace_callback('~\(([^)]*)\)~', function ($m) use (&$result) { 
    $result[]=$m[1]; 
    return ''; 
}, $element); 
+0

Какой RegEx я должен использовать (используя ту же функцию), если я ищу 's.' в строке и хочу получить все позади этого. 'Любые s. text' должен возвращать 'Any' для $ element и' text' для $ result. – user3142695

Смежные вопросы