Flutter 正则匹配助手

Posted by koocyton on 2024-11-10
Estimated Reading Time 1 Minutes
Words 289 In Total
Viewed Times

Flutter 正则匹配助手

简介

| 可以方便的组织正则文件
| 从字符串源来提取想要的内容

regex file 1

1
2
3
4
5
6
7
8
9
10
<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

1
2
3
4
5
6
<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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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]"), " ")
);
}
}

如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !