Java正则表达式匹配维基百科链接

我正在尝试编写一个 java 正则表达式来从维基百科链接中提取文本,但我的内容很短。

本质上我想<article alias>[[Some Article|<article alias>]]. [[<Any article>|<any alias>]]对于任何给定的字符串,该序列将显示未知的次数。

基本上我正在寻找一个正则表达式<regexp here>

final String someRandomText = "Some random text about [[Roman Empire|the romans]]";
final String replaced = someRandomText.replaceAll("<regexp here>", "$1");

有任何想法吗?

回答

通过使用正则表达式,[[[^|]*|(.*)]]您可以从匹配的文本中检索 group(1)。

演示:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
    public static void main(String args[]) {
        Matcher matcher = Pattern.compile("[[[^|]*|(.*)]]")
                .matcher("Some random text about [[Roman Empire|the romans]]");
        while (matcher.find()) {
            System.out.println(matcher.group(1));
        }
    }
}

输出:

the romans

regex101 中正则表达式的说明:


以上是Java正则表达式匹配维基百科链接的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>