如何在java中提取以下模式

时间:2014-06-12 19:15:13

标签: java regex

我有以下格式的字符串:

String s = " some text....
    [[Category:Anarchism| ]]
[[Category:Political culture]]
[[Category:Political ideologies]]
[[Category:Far-left politics]]
... some more text"

我想从此文本中提取所有类别。 [Anarchism,Political culture ....,Far-left politics]

另外,是否有一个很好的教程,我可以了解这个正则表达式模式匹配的东西.. 感谢

2 个答案:

答案 0 :(得分:2)

您可以使用以下正则表达式来获取类别:

\[\[Category:(.+)\]\]

然后,您可以访问您的群组以获取类别值。

如果在java字符串上使用,请记住向反斜杠添加反斜杠:

\\[\\[Category:(.+)\\]\\]

你可以看到它有效:

enter image description here

答案 1 :(得分:1)

假设您不想选择单词" Category"本身,正则表达式将是:

(?<=Category:).*?(?=])

我会为你打破这一点。

括号中的第一位查找Category,而不实际选择它。

下一个.+?查找1-infinity字符(换行符除外),但只要匹配下一部分就会停止:

最后一个括号告诉它查找],但没有实际选择它。

结果将是以蓝色突出显示的下方位。

enter image description here