给定输入文本
RANDOMNUMBERS Can I have some milk please
或
RANDOMNUMBERS Can I have some milk
我需要匹配两个字符串并仅捕获Can I have some milk
省略“请”(如果存在)的部分,并将内容放入“相同”捕获组中,无论“请”是否存在。
假设[RANDOMNUMBERS] can I have
永远存在,那么任何其他东西都可以在之后出现,除了please
永远不会出现在主体中的东西,它只是可能会或可能不会在最后。[RANDOMNUMBERS]
如果存在的话,应该please
从捕获组中省略。
例如RANDOMNUMBERS Can I have more toast please
和RANDOMNUMBERS Can I have more toast
应该产生Can I have more toast
相同的捕获组编号
我最接近解决这个问题的是
(?(?=(?!.*please).*Can I have).*(Can I have.*)|.*(Can I have.*)( please))
上面确实捕获了我想要的字符串,Can I have more toast
无论是否please
存在,但是捕获的短语被放入不同的组号中,即group 1
何时please
省略和group 2
何时please
存在。