我的输入是
The world is round. We meet everyone quite soon. It is a small world. Be happy.
我希望句子中包含小而快乐的单词。
我的正则表达式为[.]\\s*.*?small.*?happy.*?[.]
预期的输出是
It is a small world. Be happy.
但我得到的输出为
。我们很快就会见到大家。这是一个小世界。快乐。
有人可以帮帮我吗?
答案 0 :(得分:3)
您可以在此处使用单词边界\b
。
\b[^.]*small.*?happy[^.]*\.
或制作自己的界限。
(?:^|\. )([^.]*small.*?happy[^.]*\.)
答案 1 :(得分:2)
答案 2 :(得分:0)
使用这些正则表达式:
(?<!\.)[^.]*small[^.]*\.
(?<!\.)[^.]*happy[^.]*\.
这是regex demo。
(?<!\.)
断言我们不是在一个句号之前,这允许在句子之间的空格之后进行匹配。[^.]*
匹配任何不是点的字符序列,从而有效地限制句子。happy
字符序列&#34; happy&#34; 。[^.]*
\.
以句点结束。答案 3 :(得分:0)
试试以下正则表达式:
((?<=^|\. )[^.]*?(?:small|happy)[^.]*\.)
输出:
MATCH 1
1. [49-69] `It is a small world.`
MATCH 2
1. [70-79] `Be happy.`