price:(?:(?:\d+)?(?:\.)?\d+|min)-?(?:(?:\d+)?(?:\.)?\d+|max)?
此正則表達式正確地匹配以下示例。如何在Regex中繼續匹配
price:1.00-342
price:.1-23
price:4
price:min-900.00
price:.10-.50
price:45-100
price:453.23-231231
price:min-max
現在我想改進它來匹配這些情況。
price:4.45-8.00;10.45-14.50
price:1.00-max;3-12;23.34-12.19
price:1.00-2.50;min-12;23.34-max
目前比賽停在半結腸。我怎樣才能讓正則表達式在整個分號分隔符上重複?
最終解決方案:
price:(((\d*\.)?\d+|min)-?((\d*\.)?\d+|max)?;?)+
我們需要更多的一些背景,以你*不*要匹配。正則表達式'^。* $'將匹配你給出的所有例子。但是,一般情況下,您可以添加';?',在「price:」之後的所有內容周圍創建一個非捕獲組,並添加'*' – Jay 2010-08-05 21:16:20
您的正則表達式還匹配「price:minmax」和「price:1.2.3」 。這真的是你想要的嗎? – 2010-08-05 21:49:34