如果字符仅在特定位置出现特定次数,如何匹配正则表达式

How to match regex if a character is only present a specific number of times at a specific place

我正在尝试编写一个正则表达式来捕捉输入是否是这样的

>>item<<price!quantity

,但我对“<<”部分有问题,因为如果它看起来像我的正则表达式也会捕获

>>item<<<price!quantity

,但这不正确,因为“<<”部分是“<<<”,它只能是“<<”,而不是“<”或“<<<”

尽可能接近的正则表达式

^>>\w.*<{2}\d.*!\d.*

如果你想坚持你的模式,你可以通过在 <<:

之前添加一个 (?<!<) 负面回顾来修复它
^>>\w.*(?<!<)<<\d.*!\d.*
#      ^^^^^^

regex demo。注意 <<<{2} 短并且 (?<!<) 确保在 << 子字符串之前没有其他 <