我有文字:
<a href="blahblahblah-dynamic" class="blahblahblah-dynamic"
title="blahblahblah-dynamic">2.550,00 €</a>1000 € 900 € 5000 € ......
和表达式:
#(\d+[\.\,]\d*?)\s?[€]#su
符合以下条件的
550,00
示例:regexr
如何匹配整体:
2.550,00
吗?
p.s我不想将其他1000、900和数字与,
和/或.
进行匹配
换句话说,我要匹配d,d或d.d,d
因此问题possible duplicate不能解决我的情况。
有人可以帮我吗?
答案 0 :(得分:1)
您可以使用:
([0-9]{1,3}(?:.[0-9]{3})*\,[0-9]+)\s?€
这将与捕获组中的1-3位数字匹配。然后在一个组中重复一个点和3位数字,最后将匹配一个逗号,后跟一个或多个数字。
捕获组\s?[€]
匹配之后,但不属于该组。
如果您想在逗号后精确匹配两位数,可以将,[0-9]+
更新为,[0-9]{2}
作为替代方案,您可以不使用捕获组来匹配您的值,并使用正向前行(?=\s?[€])
来断言右侧是可选的空白字符,后跟€
答案 1 :(得分:0)
我猜你是在变量或其他东西中获得了该值,为什么不尝试通过
获得它$value = substr($dataReceivedFromA, 0, -1); // returns "2.550,00 "
我真的认为,如果您只想摆脱符号,则在这里使用正则表达式毫无意义