我有以下正则表达式用于使用允许的符号验证货币。
preg_match("/(?=.)^([\£|\€|\$|zł])?(([1-9][0-9]{0,2}(,[0-9]{3})*)|[0-9]+)?(\.[0-9]{1,2})?$/u","zł250")
它适用于 250 $ 250 £112 112 €434 454
但它的验证zł250。
需要测试zł
答案 0 :(得分:2)
您需要将([\£|\€|\$|zł])?
替换为([£€$]|zł)?
。
请参阅regex demo
[\£|\€|\$|zł]
构造是一个匹配1个单字符的字符类,可以是£
,|
,€
,$
,z
或ł
。因此,要使zł
匹配为2个字符的序列,您需要将它们从字符类中取出并在分组上使用|
交替运算符{{ 1}}构建级别。