I want to use greasemonkey to scrape wiki data from Last.fm (this is not possible with their REST api). I can grab the page fine with GM_xmlhttpRequest(), and it is returning properly.
I do not want to use a DOM processor to process the whole page, since I only want a small chunk, so I'm using regular expressions.
The wiki data is in the page like:
<div id="wiki">
description
description
...
</div>
So I wrote:
/\<div id="wiki"\>(.+)\<\/div\>/m.exec(data)[1];
When I test this in error console (where the multiple lines are flattened into a single line, it works, but on the page it fails and says
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
I am guessing that multiline mode does not make dor match new lines, which is what I expected. How do I make it match any character including line breaks?
The dot doesn't match newlines in javascript -- a quirk of js's regex flavor.
[^]
should work instead (eg "Everything except absolutely nothing")
尝试[\\s\\S]
,因为[^]
在IE8中不起作用
尝试(。*?)而不是(。+)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.