我需要在相当长的字符串中搜索 CPV(通用采购词汇)代码。
目前我正在用一个简单的 for 循环和 str.find() 来做这件事
问题是,如果 CPV 代码以稍微不同的格式列出,则该算法将找不到它。
在字符串中搜索代码的所有不同迭代的最有效方法是什么?是否只是将最多 10,000 个 CPV 代码中的每一个重新格式化并为每个实例使用 str.find() 的情况?
不同格式的示例如下
30124120-1
301241201
30124120 - 1
30124120 1
30124120.1
等等
谢谢:)
最佳答案
尝试正则表达式:
>>> cpv = re.compile(r'([0-9]+[-\. ]?[0-9])')
>>> print cpv.findall('foo 30124120-1 bar 21966823.1 baz')
['30124120-1', '21966823.1']
(修改直到它与您数据中的 CPV 紧密匹配。)
关于python - 在 python 中识别字符串中的子字符串的最有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4672868/