我想找到一个正则表达式公式,以查找所有以un|unui|o|unei
任何单词开头的单词,但之后单词具有连接元素"de"
unui model de amintire
un pericol de inundatie
o carte plina de inspiratie
unei casete de sticla
从文本中提取:
Trebuie sa ma dedic unui model de amintire care sa ma faca sa ma simt bun. Trebuie, mai ales, sa evit un pericol de inundatie care poate afecta fizicul. Am citit chiar azi o carte plina de inspiratie care m-a facut sa ma simt erou. Sunt prizonierul unei casete de sticla care nu se va sparge niciodata.
结果,仅用于查找,不用于替换:
model
pericol
carte plina
casete
我的正则表达式不太好。
寻找: un|unui|o|unei(.*?)de\x20\w+
编辑以匹配更新的当单词在不同(大概是英语)句子中时不匹配的要求:
唯一的变化是
.+?
->[^.?!]+?
它现在以非贪婪的方式匹配除.
,!
之外的任何内容。?
最简单的方法是借助以下工具
\K
:说明:
\b(?:un|unui|o|unei)
- 模式开头的替代方案作为非捕获组,前面是单词边界\s+
- 后面有任意数量的空格\K
- 从这个位置开始匹配.+?
- 任何非贪婪匹配的东西(?=\s+de\s+)
-de
以任何空格开头并以任何类型的单词边界结束的单词的正向超前那就是如果你只想找到中间的单词。如果你想替换它们,使用捕获组会更简单(刚刚添加的其他解决方案围绕它展开)。
^(?:un|unui|o|unei)\h+(.+?)\h+de\h+.+$
$1
. matches newline
解释:
屏幕截图(之前):
截图(之后):