【发布时间】:2021-03-05 07:09:05
【问题描述】:
所以我做了这个正则表达式:
/(?!for )€([0-9]{0,2}(,)?([0-9]{0,2})?)/
只匹配以下两个句子中的第一个:
- 这些商品可享受 50,20 欧元的折扣
- 此商品现价 30.20 欧元
您可能已经注意到,我希望不要匹配第二句中的金额,因为它不是折扣金额。但我很不确定如何在正则表达式中找到它,因为我能找到所有的报价选项,例如:
(?!foo|bar)
从我的示例中可以看出,此选项似乎不能解决我的问题。
示例: https://www.phpliveregex.com/p/y2D
建议?
【问题讨论】:
-
你的问题到底是什么,我在regex101.com/r/uQmAH2/1 上看起来是正确的?
-
您绝对应该重新表述您的问题,并包含有关您如何区分折扣和非折扣金额的信息(它们是否总是按特定顺序出现,是否总是伴随着某个短语...... )。
-
更新了一个来自 php live regex 的例子:phpliveregex.com/p/y2D