[英]Regex - Match any character across mutliple lines
我有一個HTML字符串,看起來像:
<img src="blah blah blah"><p> blah blah
blah blah blah blah blah blah
blah blah blah</p>
我如何使用正則表達式讀取blah blah...
我嘗試了(。+?),但無法正常工作,並搜索了google,但沒有找到Python的解決方案。
謝謝!
對於使用正則表達式解析html的通常免責聲明,這將起作用:
import re
match = re.search("<img[^>]*><p>([^<]*)</p>", subject)
if match:
blahblah = match.group(1)
print blahblah
說明
<img
匹配文字字符 [^>]*
匹配任何非>
字符 ><p>
匹配文字字符 ([^<]*)
捕獲沒有任何字符<
1組(這是我們所希望的) </p>
匹配文字字符 match.group(1)
包含我們的字符串 給你一個Java的例子:
public static void testRegExp() {
try {
String input = "<img src=\"blah blah blah\"><p> blah blah" +
"\n blah blah blah blah blah blah" +
"\nblah blah blah</p>";
Pattern pMod = Pattern.compile("(blah\\s+)+");
Matcher mMod = pMod.matcher(input);
int beg = 0;
while (mMod.find()) {
System.out.println("--------------");
System.out.println(mMod.group(0));
}
} catch(Exception ex) {
ex.printStackTrace();
}
}
等等等等等等等等等等
對於Python,我猜想regeular表達式是相似的。 祝你好運並嘗試一下。
您也可以嘗試使用(?s)
DOTALL修飾符的以下代碼,
>>> s = """<img src="blah blah blah"><p> blah blah
... blah blah blah blah blah blah
... blah blah blah</p>"""
>>> import re
>>> m = re.search(r'(?s)(?<=<p>).*?(?=<\/p>)', s).group(0)
>>> print m
blah blah
blah blah blah blah blah blah
blah blah blah
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.