2013-03-11 3 views
4

У меня есть Лил выражение в PHP:Python: preg_replace функция аналогового

$search = array("'<(script|noscript|style|noindex)[^>]*?>.*?</(script|noscript|style|noindex)>'si", 
    "'<\!--.*?-->'si", 
    "'<[\/\!]*?[^<>]*?>'si", 
    "'([\r\n])[\s]+'"); 

$replace = array ("", 
    "", 
    " ", 
    "\\1 "); 

    $text = preg_replace($search, $replace, $this->pageHtml); 

Как я сделал это запустить на питона? re.sub?

+2

Да, 're.sub'. Вы попробовали? – bereal

+0

@bereal ok, как я установил несколько шаблонов и замен на 're.sub'? –

+1

Для этого нет специального вызова, но почему бы не использовать '|' как описано, например, [Здесь] (http://emilics.com/blog/article/multi_replace.html)? – bereal

ответ

3

В качестве @bereal commented используйте модуль регулярного выражения re.sub.

Вот простой пример

PHP:

<?php 
echo strtolower(preg_replace('/([^A-Z])([A-Z])/', '$1_$2', 'camelCase')); 
// prints camel_case 

Python:

>>> import re 
>>> re.sub(r'([^A-Z])([A-Z])', r'\1_\2', 'camelCase').lower() 
'camel_case' 
Смежные вопросы