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 中正则表达式的说明: