我需要regex从我的数据集中的字符串过滤出特定的字符。我如何过滤掉数字和"-"?符号,并跳过"-"符号,因为我现在使用的正则表达式会过滤掉每一个"-"除在数字字符之间外,任何字母数字字符之间的符号。
的例子:
问题:非营利组织管理,100-200名员工;当前成果:非营利组织管理,员工;期望结果:"非营利组织管理,员工";
if 'business' in row.keys():
row['business'] = re.sub("[0-9-][0-9]*", '', str(row['business']))
您需要使用表达式d+-d+
,以便将所有-包括数字(d)替换为空字符串。
print(re.sub("d+-d+ *", "", "Non-Profit Organization management, 100-200 employees"))
"非营利组织管理,员工"的结果
注意我将*
添加到模式中,以便也删除数字后面的空格。
:如果您多次执行此操作,我建议您执行如下操作:
import re
pattern = re.compile("d+-d+ *")
print(pattern.sub("", "Non-Profit Organization management, 100-200 employees"))
所以Python不需要每次都编译模式。
python:
string = "Non-Profit Organization management, 100-200 employees"
re.sub("(d+)-(d+)", "", string)
输出:
'Non-Profit Organization management, employees'