我正在尝试使用允许使用正则表达式的 NginX 替换过滤器。我可以让它以基本方式工作,即将 phone
替换为 telephone
,但我似乎无法让它有条件地替换一串文本。
这里是检查 XML 的检查:
eat apples cantaloupe bananas often
我想执行以下规则集:
- 寻找以
eat
开头并以often
结尾的字符串 - 如果字符串包含
bananas
,则将bananas
替换为尤其是bananas
- 如果字符串不包含bananas,则不对字符串做任何操作
我知道我可以使用类似这样的东西来使部分字符串可用:
/(eat.*)(bananas)?(.*often)/
假设 bananas
存在,我可以使用以下规则进行替换:
$1 and especially $2 $3
但如果 bananas
不存在,这将给出一个奇怪的结果:
输入
eat apples cantaloupe often
输出:
eat apples cantaloupe and especially often
我需要前瞻运算符吗?我读过 this article但我还是遇到了麻烦。
最佳答案
尝试使用前瞻:
/(?=.*eat.*bananas.*often) bananas/
关于regex - 我可以创建条件查找并用正则表达式替换吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14449560/