Regex 使用正则表达式仅匹配百分比中的数字
有一个数据帧,一些单元格包含百分比,进一步看每个单元格类似于Regex 使用正则表达式仅匹配百分比中的数字,regex,Regex,有一个数据帧,一些单元格包含百分比,进一步看每个单元格类似于“\u200b68%”、“\u200b.75%”、“\u200b3.4%”。只想把数字匹配出来。 尝试了re.findall(“(\d*(\.\d+)”,“\u200b.75%”)但得到的内容太多。 我所期望的是68,75,3.4 您可以在其后面添加百分号,并使用单个捕获组与re.findall一起使用 (\d*(?:\.\d+)?)% 如果应该存在\u200b部件,您还可以匹配: \\u200b(\d*(?:\.\d+)?)%
“\u200b68%”、“\u200b.75%”、“\u200b3.4%”
。只想把数字匹配出来。
尝试了re.findall(“(\d*(\.\d+)”,“\u200b.75%”)
但得到的内容太多。
我所期望的是
68,75,3.4
您可以在其后面添加百分号,并使用单个捕获组与re.findall一起使用
(\d*(?:\.\d+)?)%
如果应该存在\u200b
部件,您还可以匹配:
\\u200b(\d*(?:\.\d+)?)%
比如说
import re
regex = r"\\u200b(\d*(?:\.\d+)?)%"
test_str = ("\\u200b68%\n"
"\\u200b.75%\n"
"\\u200b3.4%")
matches = re.findall(regex, test_str)
print(matches)
输出
['68', '.75', '3.4']
您可以在后面添加百分号,并使用单个捕获组与re.findall一起使用
(\d*(?:\.\d+)?)%
如果应该存在\u200b
部件,您还可以匹配:
\\u200b(\d*(?:\.\d+)?)%
比如说
import re
regex = r"\\u200b(\d*(?:\.\d+)?)%"
test_str = ("\\u200b68%\n"
"\\u200b.75%\n"
"\\u200b3.4%")
matches = re.findall(regex, test_str)
print(matches)
输出
['68', '.75', '3.4']
像这样的东西应该有用
\\u200b([0-9.]{1,5})%
演示:类似的东西应该可以用
\\u200b([0-9.]{1,5})%
演示: