2009-09-07 2 views
2

Я хочу использовать greasemonkey для очистки данных wiki от Last.fm (это невозможно с помощью REST api). Я могу захватить страницу с помощью GM_xmlhttpRequest(), и она возвращается должным образом.Соответствующие многострочные шаблоны

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

Данные вики на странице, как:

<div id="wiki"> 
description 

description 
... 
</div> 

Так что я писал:

/\<div id="wiki"\>(.+)\<\/div\>/m.exec(data)[1]; 

Когда я проверить это по ошибке консоли (где несколько линий деформироваться в одну линию, он работает, но на странице он терпит неудачу и говорит

Error: /\<div id="wiki"\>(.+)\<\/div\>/m.exec(data) is null 
Source File: file:///home/jeff/.mozilla/firefox/x4su9596.default/extensions/%7Be4a8a97b-f2ed-450b-b12d-ee082ba24781%7D/components/greasemonkey.js 
Line: 357 

Я предполагаю, что многострочный режим не делает dor соответствуют новым строкам, чего я ожидал. Как заставить его соответствовать любому персонажу, включая разрывы строк? (. *)

ответ

8

дот не соответствует новой строки в JavaScript - причуда Дж.С. регулярное выражение вкуса игровая.

[^] должны работать вместо этого (например, "Все, кроме абсолютно ничего")

+0

Это работало, за исключением того, я должен был сделать это lazy-- [^] + ?, Спасибо –

5

попробовать [\s\S], потому что [^] не работает в IE8

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