簡體   English   中英

正則表達式不匹配空字符串

[英]Regex not matching empty string

Pattern srcAttrPattern = Pattern.compile("(?i)(?<=src=\")[^\"]*(?<!\")");
Matcher srcMatcher=srcAttrPattern.matcher("src=\"\"");
System.out.println(srcMatcher.find());

這打印錯誤。 我如何解釋上面的代碼? 是否需要進行任何修改以包含src =“”以用於上述代碼以用於填充空字符串以及填充字符串。 該語句基本上匹配html內容的<img>中的src標記。

請注意,要解析HTML,最好使用一些專用解析器(例如Jsoup )。

至於匹配src=""字符串的當前問題,最終的負面后觀需要當前位置之前的字符不是引號。 由於您使用的是否定的字符類[^"]* (除0+字符" )你只是不需要那么回顧后。

刪除(?<!") ,您將匹配src=""中的空字符串與"(?i)(?<=src=\\")[^\\"]*"

請參閱正則表達式演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM