当前位置: 首页 > 知识库问答 >
问题:

提取句子中连续单词的正则表达式

安坚诚
2023-03-14

我试图在java中找到一个正则表达式,它可以提取句子中的连续词对,如下面的示例所示。

输入:word1 word2 word3 word4。。。。

输出:

  • 文字1文字2

等...

知道怎么做吗?

共有3个答案

唐法
2023-03-14

也提供了一个没有不合理复杂性的解决方案。。。

final String in = "word1 word2 word3 word4";
final String[] words = in.split("\\s+");
for (int i = 0; i < words.length - 1; i++)
  System.out.println(words[i] + " " + words[i+1]);

打印

word1 word2
word2 word3
word3 word4
仲柏
2023-03-14

给你:

public class Example {
    public static void main(String[] args) {
        String words = "word1 word2 word3 word4";
        String regex="\\w+\\s+\\w+";
        Pattern p = Pattern.compile(regex);
        Matcher matcher = p.matcher(words);
        while(matcher.find()){
            String found = matcher.group();
            System.out.println(found);
            String splitted = found.split("\\s+")[1];
            words = words.replace(found, splitted);
            matcher = p.matcher(words);
        }
    }
}
颜霖
2023-03-14
Matcher m = Pattern.compile("(?:^|(?<=\\s))(?=(\\S+\\s+\\S+)(?=\\s|$))")
  .matcher("word1 word2 word3 word4");
while (m.find()) {
  System.out.println(m.group(1));
}
word1 word2
word2 word3
word3 word4

在此处测试此代码。

 类似资料:
  • 我正在寻找一个C#regex来匹配一个句子中的完整单词。 我的句子和句型如下所示。 我没有得到任何匹配使用上述模式。 但如果我用这个模式,我会得到一个匹配。 但问题是它匹配连字符分隔的单词,如在疼痛,我正在寻找一个完整的单词。 谢谢你的帮助

  • 问题内容: 我想提取所有 用 大括号括起来的 单词 ,所以我有一个这样的表达式 匹配的字符串可能包含任意多个这样的单词,但是我开始认为我正在以错误的方式解决此问题。 我的尝试 而且我尝试将花括号这些词提取为组,以便可以使用每一个匹配项。所以,我做了一个正则表达式: 注意:我使用的是JRegex语法,因此我需要避免掉一些curl。 结果 我得到的结果是一个(虽然是正确的)比赛,而我希望有两个比赛和。

  • 问题内容: 我如何使它对任何数字格式和任何数字都有效 目前仅对1-999-999-9999有效 问题答案: 采用: 参考: 模式匹配

  • 问题内容: 我想在Elastisearch中使用单词边界进行正则表达式查询,但是看起来Lucene正则表达式引擎不支持。我可以使用哪些解决方法? 问题答案: 在ElasticSearch regex风格中,没有直接等效于单词边界的功能。最初是一样的东西,如果用一个字字符开始,并且尾部就像如果用一个字字符结束。 因此,我们需要确保在字符串的前后或字符串的开始/结束处有一个非单词char 。由于正则表

  • 我正在尝试抓取模式中第一个连字符之后的文本 但在此模式中: 我希望它跳过‘不想要的’文本,并匹配的文本后面的下一个连字符(DesiredText)。我创建了一个具有两种模式regex101,并需要修改我的基本regex,以便如果中存在一个或多个我不想匹配的单词,那么它将匹配第二个连字符文本: https://regex101.com/r/vesqh3/1

  • Perl6正则表达式匹配连接 它为False,因为连词中的“23”与$a中的“23”子字符串匹配,但此子字符串与连词中的“ef”不匹配。这有点违反直觉,因为它更容易解释$a ~~ m/23 如果我有n个正则表达式,我想看看是否所有这些n个正则表达式都匹配相同的整个字符串,而不是匹配整个字符串的相同子字符串部分,那么编写perl6表达式的最佳方法是什么? 在例子中,我真的想做 如果正则表达式的数量很