我有这段字符串,我必须删除完全匹配(span标记):
to_clean= "<p><span style=\"font-size: 10pt; color: rgb(85, 85, 85); font-family: helvetica; font-weight: normal; line-height: 14pt;\">Tratto da una storia vera e interpretato da <strong>Tom Cruise</strong> nel ruolo del colonnello Claus von Stauffenberg, <strong>Operazione Valchiria</strong> è la cronaca del coraggioso e ingegnoso piano per eliminare uno dei più perversi tiranni che il mondo abbia mai conosciuto. Orgoglioso della divisa che indossa, il colonnello Stauffenberg è un ufficiale leale che ama il suo paese, ma che è stato costretto ad assistere con orrore all'ascesa di Hitler e alla Seconda Guerra Mondiale. Ha continuato a servire nell'esercito, sempre con la speranza che qualcuno trovasse il modo per fermare Hitler prima che l'Europa e la Germania fossero distrutte. Quando si rende conto che il tempo stringe, Stauffenberg decide di entrare in azione e nel 1942 cerca di persuadere i comandanti del fronte orientale a rovesciare Hitler. Poi, nel 1943, mentre si sta riprendendo dalle ferite subite in combattimento, si unisce a un gruppo di uomini inseriti nei ranghi del potere che cospirano contro il tiranno. La loro strategia prevede di usare lo stesso piano di emergenza di Hitler per consolidare il paese nell'eventualità della sua morte - l'Operazione Valchiria - per assassinare il dittatore e rovesciare il governo nazista. Con il futuro del mondo e il destino di milioni di persone, oltre alla vita della moglie e dei figli, appesi a un filo, Stauffenberg da oppositore di Hitler diventa l'uomo che deve uccidere Hitler.<br />\r\nIl film, diretto dal regista <strong>Bryan Singer</strong> (<em>I soliti sospetti, X-Men, Superman Returns</em>) vede nel cast, oltre a Cruise, anche Kenneth Branagh, Bill Nighy, Tom Wilkinson, Carice van Houten, Thomas Kretschmann, Eddie Izzard, Christian Berkel e Terence Stamp.<br />\r\n<br />\r\nIl DVD, della durata di <strong>116 minuti</strong>, viene presentato con video 16:9 in formato anamorfico 1.85:1 e tracce audio italiano e inglese Dolby Digital 5.1 e <span style=\"font-weight: bold;\">i</span><strong>taliano DTS 5.1</strong>. Tra i contenuti speciali troviamo <em>La storia del film, Prendere il volo</em>, due backstage sui luoghi del set, uno in Africa e uno a Berlino, una galleria fotografica e il trailer originale. Verrà commercializzato a partire dal <strong>16 settembre</strong>, assieme alla versione in alta definizione su Blu-ray Disc.</span></p>"
我删除跨度的ruby行是这样的:
to_clean.gsub!( /<span style="font-size: 10pt; color: rgb\(85, 85, 85\); font-family: helvetica; font-weight: normal; line-height: 14pt;">(.*?)<\/span>/s, '\1')
我也尝试用
to_clean.gsub!( /<span style=\"font-size: 10pt; color: rgb\(85, 85, 85\); font-family: helvetica; font-weight: normal; line-height: 14pt;\">(.*?)<\/span>/s, '\1')
在Rubular上一切都很好,但我的gsub!返回零。
有什么想法吗?
答案 0 :(得分:0)
您需要对多行regexp使用m
修饰符,因为字符串中有\r\n
:
# ⇓
to_clean.gsub!( /…/m, …)
# ⇑
这样可行。