Flutter 正则匹配助手
·1 min read
Flutter 正则匹配助手
简介
| 可以方便的组织正则文件 | 从字符串源来提取想要的内容
regex file 1
<li class='swiper-slide'><img src='([^<"]+)'></li></ul>
.+?<div class="title">
\s+([^<"]+)\s*<div [^>]+>
.+?<span class="iconStar"></span>
\s+([^<"]+)\s+<span class="bar">|
.+?
: ([^<"]+)\s+<span class="bar">|
.+?<span class='viewCnt'>([^<"]+)</span>
.+?<div class="desc">([^<"]+)</div>
.+?<ul class="list_area" [^>]+>(.+?)</ul>
regex file 2
<li class="episodeBox doubleThumb" [^>]+>
.+?<a href="([^\"]+)">
.+?<span class=[\'|\"]thumb_1.+? data-src="([^\"]+)">
.+?<span class=[\'|\"]thumb_2.+? data-src="([^\"]+)">
.+?<div class='title'>([^<]+)
.+?<div class='pubDate'>([^<]+)
Util
class MatchUtil {
static Iterable<RegExpMatch> matchAll(String regex, String? text) {
if (text==null) {
return [];
}
return RegExp(
regex.replaceAll(RegExp(r"[\r\n|\n]"), ""),
multiLine:true
)
.allMatches(
text.replaceAll(RegExp(r"[\r\n|\n]"), " ")
);
}
static RegExpMatch? match(String regex, String? text) {
text ??= "";
return RegExp(
regex.replaceAll(RegExp(r"[\r\n|\n]"), ""),
multiLine:true
)
.firstMatch(
text.replaceAll(RegExp(r"[\r\n|\n]"), " ")
);
}
}