我有兴趣在字符串中找到7个单词 这些应按空格分隔按顺序。
假设String regex
有一个包含7个单词的字符串,我感兴趣的是是否没有匹配减少到6,5,4等单词。
我认为的第一个正则表达式是:
\\b(?:word1(\\s+)word2(\\s+)word3(\\s+)word4(\\s+)word5(\\s+)word6(\\s+)word7)\\b
StringBuffer
之后会发生以上情况
splitting
变量regex
按空格,我会构造
正则表达式append
。word6
等,并进一步减少到word5
等,直到我匹配为止。我不确定我是否真的喜欢这种方法。我可以改进它还是以更有效的方式做到这一点?
答案 0 :(得分:1)
贪婪(默认)会做你想做的事情
\\b(?:word1(?:(\\s+)word2(?:(\\s+)(?:word3(\\s+)(?:word4(\\s+)(?:word5(\\s+)(?:word6(?:(\\s+)word7)?)?)?)?)?)?)?)\\b
这将首先尝试匹配所有内容,然后离开word7
,然后离开word6
...
答案 1 :(得分:0)
您可以组合单词和空格,然后您可以指定计数限制,例如在您的情况下为1-7。这可能是一种替代解决方案