获取两个单词之间的字符串

时间:2019-02-22 16:21:58

标签: regex

\[(.*?)\]的字符串介于[]之间。现在我想让一个单词和另一个单词之间的字符串。我尝试过\wword1(.*?)\wword2,但没有成功。帮帮我,我在做什么错了?

字符串示例:

  

引擎word1已成功匹配word2,   字符串,跳过字符i和i的前两次出现   s。如果我们使用了正则表达式is,它将与   在此。

输出示例:has succesfully

4 个答案:

答案 0 :(得分:1)

尝试一下:

(?<=word1)(stringbetween)(?=word2)

答案 1 :(得分:0)

您可以这样做-

word1 ([a-zA-Z\s]+) word2

OR

在删除前后不必要的\w之后的方法

word1 (.*?) word2

正则表达式: https://regex101.com/r/fsp3FS/20

答案 2 :(得分:0)

\w添加到模式中时,它将与单词字符匹配,并且是预期的。

您可能要做的是删除该字符,并在第一个单词之后和第二个单词之前匹配1倍以上的空白字符。

然后在第一个捕获组中进行比赛:

\bword1\s+(.*?)\s+word2\b

Regex demo

说明

  • \b字边界
  • word1字面匹配
  • \s+匹配1次以上的空白字符
  • (.*?)任意捕获0次以上的字符,不贪心
  • \s+匹配1次以上的空白字符
  • word2字面上匹配
  • \b字边界

答案 3 :(得分:0)

  

[(.?)]的字符串介于[]之间。

不,不是,应该是\[[^\]]*\],以获取[和]之间的任何字符串

解决方案是:

\bword1(.*?)\bword2

\w是单词[A-Za-z)-9]等。 \b是您要寻找的单词边界。甚至可能是

\bword1\b(.*?)\bword2\b