鉴于下面的代码,来自这个问题的公认答案:
import re
pathD = "M30,50.1c0,0,25,100,42,75s10.3-63.2,36.1-44.5s33.5,48.9,33.5,48.9l24.5-26.3"
print(re.findall(r'[A-Za-z]|-?\d+\.\d+|\d+',pathD))
['M', '30', '50.1', 'c', '0', '0', '25', '100', '42', '75', 's', '10.3', '-63.2', '36.1', '-44.5', 's', '33.5', '48.9', '33.5', '48.9', 'l', '24.5', '-26.3']
如果我在pathD变量中包含诸如 '$' 或 '£' 之类的符号,则re表达式将跳过它们作为目标[A-Za-z]和数字
[A-Za-z] # words
|
-?\d+\.\d+ # floating point numbers
|
\d+ # integers
如何根据下面的所需输出修改上面的正则表达式模式以保留非字母数字符号?
new_pathD = '$100.0thousand'
new_re_expression = ???
print(re.findall(new_re_expression, new_pathD))
['$', '100.0', 'thousand']
波斯汪
相关分类