2010-02-07 3 views
3

Как удалить все символы регулярных выражений из строки?PHP: Как удалить все регулярное выражение?

например: у меня есть «/^bla\/bla\/bla\//i», который я хочу быть: «bla/bla/bla/»


Я предполагаю, что это не представляется возможным в связи с этим я думал о. Спасибо за ваши ответы

+7

Что вы хотели бы сделать с обходами? А как насчет метасимволов типа '.' (точка) или классов символов, таких как' [abc] '? И т.д. и т. Д. Сначала определите, какое подмножество регулярного выражения вы хотите обрабатывать. –

+0

Является ли это повторением этого вопроса? http://stackoverflow.com/questions/2216494/php-how-do-i-convert-a-regular-expression-to-an-example-match Если так, пожалуйста, закройте один из них –

+0

Как бы вы хотели, чтобы скобки обрабатывались? Если у вас есть '/^bla \/(bla) \/bla \ // i' вы хотите' bla // bla/'или просто хотите, чтобы скобка исчезла? – Anthony

ответ

0

Я не совсем понимаю, что вы пытаетесь сделать, но если вы просто хотите удалить определенные символы из строки, вам может быть полезно использовать strtr(). С одной стороны это будет намного быстрее, чем делать регулярное выражение, и это, вероятно, будет более читаемым.

Редактировать: На самом деле я действительно не понимаю, чего вы пытаетесь достичь.

+0

OP не сказал, что он пытался * использовать * регулярное выражение, а скорее пытался * преобразовать * регулярное выражение, представляющее строку в другую строку. – Avi

+0

Да, я понял, что после того, как я разместил. Теперь я смущен. –

+0

Возможно, лучше удалить этот ответ? –

0
<?php 
    $string = "/^bla\/bla\/bla\//i"; 
    $patterns = array(
     "/\/\^([\w]+)/i" => "$1/", 
     "/[\/]{2,}i$/i" => "/", 
     "/\\\/" => "", 
     "/[\/]{2,}/" => "/", 
     "/\/$/" => "", 
    ); 
    echo preg_replace(array_keys($patterns),$patterns,$string); 

    //OR, this: 
    echo "\n"; 

    $string = "/^bla\/bla\/bla\//i"; 
    $pattern = "/(?![\/\w]$)([\w]+)/"; 
    preg_match_all($pattern,$string,$matches); 
    echo join('/',$matches[0]); 
?> 
+1

Некоторые люди могут не согласиться с расщеплением up в части логических операций, как в первом примере, это выбор стиля. Тем не менее, нижний метод предпочтительнее, я бы подумал, лучше захватить то, что вы действительно хотите, чем позаботиться о замене того, чего вы не хотите. –

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