gpt4 book ai didi

java - 检查是否只有一个垂直条 |在一个字符串中?使用正则表达式

转载 作者:行者123 更新时间:2023-11-29 05:25:35 25 4
gpt4 key购买 nike

所以我有 same example here这是被问到的,它是包含类似以下 mediawiki 标记的 xml:

" ...collected in the 12th century, of which [[Alexander the Great]] was the hero, and in which he was represented, somewhat like the British [[King Arthur|Arthur]]"

使用这个正则表达式:

Pattern p = Pattern.compile("\\[\\[([\\w | \\w]+)\\]\\]");

它工作正常,我得到了这个输出:

Alexander the Great
King Arthur|Arthur

问题:如果我有一个像 [[Alexander|the |Great]] 这样带有两个或多个竖线的文本,这不应该匹配,但它匹配。

所以我更改了我的正则表达式以仅匹配一个竖线但没有起作用:

Pattern p = Pattern.compile("\\[\\[([\\w |? \\w]+)\\]\\]");

最佳答案

你可以使用这个:

Pattern p = Pattern.compile("\\[\\[([\\w ]+\\|?[\\w ]*)\\]\\]");

或者,如@fge 的评论:

Pattern p = Pattern.compile("\\[\\[([\\w ]+(?:\\|[\\w ])?)\\]\\]");

关于java - 检查是否只有一个垂直条 |在一个字符串中?使用正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22778732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com