我想使用正则表达式将字母a替换为带有EI的单词中包含e的所有单词,然后需要从单词中删除最后一个e。 例如:
date
将成为deit
cat
将保持cat
jane
将成为jein
我已经编写了一个正则表达式,用最后有e的单词取代了EI,但是我无法删除最后一个e
我的正则表达式:s/a(?=.*e\b)/EI/g
。
答案 0 :(得分:1)
您当前正则表达式的问题:
s/a(?=.*e\b)/EI/g.
.*
是贪婪,并且会匹配单词。例如,您的模式会定位a
中的banana edible
,因为.*
会在其他单词中检测到e
。相反,尝试这个查找并替换:
<强>查找强>
a(?=[A-Za-z]*e\b)
<强>替换强>
ei
以下示例显示模式正确标识a
个字母,以e
结尾的单词替换:
答案 1 :(得分:1)
查找并替换以下内容
<强>查找强>
([a-zA-Z]*)(a)([a-zA-Z]*)(e\b)
([a-zA-Z]*)
在首次出现a
(a)
确保a
存在
([a-zA-Z]*)
在首次出现a
(e\b)
确保单词以e
<强>替换:强>
$1ei$3
$1
- 第一个捕获组
而不是第二个捕获组(a)
替换为ei
$3
- 第三个捕获组
第四个捕获组被省略,因此它最后删除了e
<强> Demo 强>