gpt4 book ai didi

java - 特殊字符之间多个单词的正则表达式

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

我正在尝试使用 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 个匹配项(每个单词一个),但我希望它只是一个匹配项。

谁能帮我找到正确的正则表达式?

最佳答案

您可以使用 [a-zA-Z]{2}[a-zA-Z ]*\\b找到最少两个字符的单词

  • [a-zA-Z]{2} : 完全匹配 2 个大写或小写字母
  • [a-zA-Z ]*\\b:匹配零个或多个大小写字符,分词边界

要仅查找后跟带空格的单词,请使用

[a-zA-Z]{2}(?:\\s*[a-zA-Z]{2,})*

关于java - 特殊字符之间多个单词的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44615114/

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