【发布时间】:2017-11-20 18:11:29
【问题描述】:
我正在尝试使用 Java 中的正则表达式在某些特殊字符之间至少包含一个单词的每组单词。这些是一些示例字符串来澄清它:
{ ? <> <> ; <> ? ; <> ? . ? <> ? . ? <> ? . ? <> ? }
{ <> <> ? . <> <> ? }
{ <> <> <> }
{ OPTIONAL { <> <> ? } FILTER ( ! bound(?) ) }
{ FILTER not exists ( ! bound(?) ) }
{ <> <> ? . ? <> ? }
{ ? <> <> ; a <> }
{ <> <> ?@en }
{ <> <> <> }
{ <> <> ? . <> <> ? FILTER ( ? > ? ) }
{ <> <> ? . ? <> ? FILTER regex(? ?) }
{ <> <> ? FILTER ( ! bound(?) ) }
{ ? <> ? ; <> ? . ? <> ? }
{ ? <> ? ; <> ? . ?2 <> ? ; <> ? }
{ ? <> <> ; <> ? . ? <> ? }
{ <> <> ? . <> <> ? FILTER ( ? = ? ) }
我的比赛应该是这样的:
OPTIONAL
FILTER
bound
FILTER not exists
bound
...
这是我目前想出的正则表达式:
[^\d\W\\a\@]+
你可以在这里测试它:https://regex101.com/r/cP3Uri/2
我的问题是我的正则表达式只会找到完整的单词而没有单词组(中间有空格)。这意味着这个子字符串 FILTER not exists 将获得 3 个匹配项(每个单词一个),但我希望它只是一个匹配项。
谁能帮我找到正确的正则表达式?
【问题讨论】:
-
@Pavneet_Singh 发布它我认为它是正确的 :)