首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >标记文件中的Regex get节

标记文件中的Regex get节
EN

Stack Overflow用户
提问于 2021-07-13 09:43:50
回答 1查看 200关注 0票数 1

我试图使用regex获取链接列表(https://raw.githubusercontent.com/Anything-Minecraft-Team/anything-minecraft/main/server/info/lists/plugins/anticheats.md)的每个部分。

我希望能像这样从列表中得到每一节

代码语言:javascript
复制
- [Anti Cheat](https://github.com/Paroxial/Anti-Cheat)  
Version: 1.8  
Rating: ???  
Discontinued

这样我就可以得到版本/评级信息,并知道它来自哪个链接。

我有一个(?:.*)(?:\n .*)*,它选择在上面/下面的文本之间有空格的文本(编辑,不,它不是真的哑)。但由于我的格式不起作用,是否有其他方法可以做到这一点,还是必须更改格式?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-13 10:13:34

您可以使用3个捕获组获取链接和部分。

代码语言:javascript
复制
^- \[[^]\[]+]\((https?://[^\s()]+)\).*\R(Version:.*)\R(Rating:.*)\R(\S.+)$
  • ^-匹配字符串开头的-
  • 来自\[[^]\[]+][...]匹配
  • \((https?://[^\s()]+)\)匹配(并捕获第1组中的url和匹配)
  • .*\R匹配行的其余部分和换行符
  • (Version:.*)捕获组2,匹配版本信息
  • \R(Rating:.*)捕获组3,匹配评级信息
  • \R(\S.+)$匹配换行符并捕获组4中的单个空格char和行的其余部分

Regex演示 x- Java演示

代码语言:javascript
复制
final String regex = "^- \\[[^]\\[]+]\\((https?://[^\\s()]+)\\).*\\R(Version:.*)\\R(Rating:.*)\\R(\\S.+)$";
final String string = "- [ABC Advanced Anticheat](https://www.spigotmc.org/resources/91606/) - Removed due to private reasons  \n"
+ "Version: 1.7 - 1.16  \n"
+ "Rating: 4  \n"
+ "Discontinued\n"
+ "- [AbdeslamNeverCheat](https://www.spigotmc.org/resources/61280)  \n"
+ "Version: 1.8  \n"
+ "Rating: 1  \n"
+ "Discontinued";

final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);

while (matcher.find()) {
    System.out.println("Link: " + matcher.group(1));
    System.out.println("Version: " + matcher.group(2));
    System.out.println("Rating: " + matcher.group(3));
    System.out.println("Status: " + matcher.group(4));
}

输出

代码语言:javascript
复制
Link: https://www.spigotmc.org/resources/91606/
Version: Version: 1.7 - 1.16  
Rating: Rating: 4  
Status: Discontinued
Link: https://www.spigotmc.org/resources/61280
Version: Version: 1.8  
Rating: Rating: 1  
Status: Discontinued
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68360042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档