【发布时间】:2015-08-13 22:50:30
【问题描述】:
我对正则表达式有些陌生,我正在尝试理解这个正则表达式:
(?<!mix\s|mixe[rds]\s|mixing\s)with(?:out)?
在我看来是搜索with或without,如果它后面没有以下单词:
- 混合
- 混合器/混合/混合
- 混合
所以我试图将其重写为:
(?<!mix(?:e[rnds]|ing)?\s)with(?:out)?
但我收到以下错误:
- Lookbehind 断言不是固定宽度
我了解lookbehind 的工作原理(它返回固定宽度,然后尝试匹配),但是lookbehind 中的两个正则表达式不是同一个正则表达式吗?
(我在这里找到了一些信息,但我仍然不清楚为什么在这种情况下它不起作用) What's the technical reason for "lookbehind assertion MUST be fixed length" in regex?
【问题讨论】: