[英]regex not matching wildcard
我有以下HTML:
<tr><td><font color="#306eff">P: </font>9283-1000<font color="#306eff">
或(換行符)
<tr><td><font color="#306eff">P: </font>9283-1000
<font color="#306eff">
我去了regexpal.com並輸入了以下正則表達式:
P: </font>(.*?)<font
它匹配。 但是當我用Java進行操作時,它不匹配:
Pattern rP = Pattern.compile(">P: </font>(.*?)<font");
Matcher mP = rP.matcher(data);
if (mP.find()) {
System.out.println(mP.group(1).trim());
}
我在不同場合嘗試過多個正則表達式,它們根本無法在Java中工作。 有什么建議么? 謝謝!
你的作品對我來說很好。
public static void main(String[] args) {
String data = "<tr><td><font color=\"#306eff\">P: </font>9283-1000<font color=\"#306eff\"> ";
Pattern rP = Pattern.compile(">P: </font>(.*?)<font");
Matcher mP = rP.matcher(data);
if (mP.find()) {
System.out.println(mP.group(1).trim());
}
}
打印: 9283-1000
。
我想問題可能出在如何將data
饋入程序中。
因為您可以從此輸出中看到代碼本身就可以。
嘗試使用此正則表達式:
(?ims).*?>P: </font>(.*?)<font.+
樣例代碼
public static void main(String[] args) {
String data="<tr><td><font color=\"#306eff\">P: </font>9283-1000<font color=\"#306eff\"> ";
Pattern rP = Pattern.compile("(?ims).*?>P: </font>(.*?)<font.+");
Matcher mP = rP.matcher(data);
if (mP.find()) {
System.out.println(mP.group(1).trim());
}
}
輸出量
9283-1000
嘗試這個 :
String data="<tr><td><font color=\"#306eff\">P: </font>9283-1000<font color=\"#306eff\"> ";
Pattern rP = Pattern.compile(">P: </font>(.*?)<font");
Matcher mP = rP.matcher(data);
if (mP.find()) {
System.out.println(mP.group(1).trim());
}
在Java中,唯一的區別在於轉義字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.