Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试匹配字符串中的百分比值:
Starting task, 13.73 % (11.17 fps, avg 14.66 fps, ETA 00h03m53s)
问题是我的正则表达式有效,但它匹配所有三个浮点值:
\d*\.\d+%?
我得到三个值:
11.17 14.66
我只想匹配 13.73。
有什么建议吗?
您的模式的问题在于它会匹配一个数字,后面紧跟一个可选的百分号。由于百分比不是模式的必需部分,因此其他数字可以很好地匹配。
您可以尝试这种模式(注意这\s*意味着零个或多个空格字符):
\s*
\d*.\d+\s*%
这将返回13.73 %。如果您不想包含该%标志,请使用一个组:
13.73 %
%
(\d*.\d+)\s*%
然后提取相关文本。
或者,您可以使用前瞻:
\d*.\d+(?=\s*%)