此\[(.*?)\]
的字符串介于[
和]
之间。现在我想让一个单词和另一个单词之间的字符串。我尝试过\wword1(.*?)\wword2
,但没有成功。帮帮我,我在做什么错了?
字符串示例:
引擎word1已成功匹配word2, 字符串,跳过字符i和i的前两次出现 s。如果我们使用了正则表达式is,它将与 在此。
输出示例:has succesfully
答案 0 :(得分:1)
尝试一下:
(?<=word1)(stringbetween)(?=word2)
答案 1 :(得分:0)
您可以这样做-
word1 ([a-zA-Z\s]+) word2
OR
在删除前后不必要的\w
之后的方法
word1 (.*?) word2
答案 2 :(得分:0)
将\w
添加到模式中时,它将与单词字符匹配,并且是预期的。
您可能要做的是删除该字符,并在第一个单词之后和第二个单词之前匹配1倍以上的空白字符。
然后在第一个捕获组中进行比赛:
\bword1\s+(.*?)\s+word2\b
说明
\b
字边界word1
字面匹配\s+
匹配1次以上的空白字符(.*?)
任意捕获0次以上的字符,不贪心\s+
匹配1次以上的空白字符word2
字面上匹配\b
字边界答案 3 :(得分:0)
此
[(.?)]
的字符串介于[
和]
之间。
不,不是,应该是\[[^\]]*\]
,以获取[和]之间的任何字符串
解决方案是:
\bword1(.*?)\bword2
\w
是单词[A-Za-z)-9]
等。 \b
是您要寻找的单词边界。甚至可能是
\bword1\b(.*?)\bword2\b