我有以下正则表达式:
\s?(\w+)=(\w+)?\s?
我的输入是
Brutto=57.800
比赛只是
Brutto=57
如何获得以下结果?
Brutto=57.800
答案 0 :(得分:1)
我会得到所有“非空间”字符:
\s?(\w+)=(\S*)\s?
仅供参考(\S*)
与(\S+)?
具有相同的效果,但更简单。
答案 1 :(得分:0)
如果值始终包含小数点\s?(\w+)=(\d+.\d+)?\s?
答案 2 :(得分:0)
你必须单独处理点(并用反斜杠转义):
\s?(\w+)=(\w+\.?\w+)?\s?
答案 3 :(得分:0)
如果你需要匹配,你可以试试\s?\w+=\d+.\d+\s?
。
如果您需要分组,也可以尝试\s?(\w+)=(\d+.\d+)\s?
你也可以用\ w替换\ d,因为\ d只代表数字,而\ w代表任何字母数字字符。
答案 4 :(得分:0)
在正则表达式中,您使用的\w+
与57.800
中的点不匹配,因此它与57
匹配。
如果您的目标是在开始和结束时将等号后的数字与可选的空格字符\s?
匹配,则可以使用:
请注意,我没有使用捕获的群组()
。如果您想使用群组检索匹配项,可以使用(\w+)
和([0-9]+\.[0-9]+)
如果.800
是可选的,您可以使用\s?\w+=[0-9]+(?:\.[0-9]+)?\s?