我有一个可能的分隔符列表。我正在处理几千个字符串,并且在找到其中一个分隔符后需要删除所有内容。注意:当字符串中有多个分隔符时,将永远不会有这种情况。剥离可能的分隔符列表之后的所有内容,而不使用正则表达式
实施例:
patterns = ['abc', 'def']
example_string = 'hello world abc 123'
如果example_string
是在这种情况下,输入,输出应该是hello world abc
。
我目前正在使用正则表达式的解决方案,这是工作,但我想使用一种不使用正则表达式的方法。这是我目前的执行:
regex = r'(.*)(' + '|'.join(patterns) + r')(.*)'
example_string= re.sub(regex, r'\1\2', example_string).lstrip()
我想沿着搜索线的东西,看是否从模式的分隔符的一个字符串中,然后从分隔符的长度的位置索引字符串,直到字符串的结尾。
不确切地知道这是否是一个很好的实现方法,或者如果这可行。
“patterns”中大概有多少个字符串?他们都是一样的长度? –
模式中有28个字符串,但随时间而变化。不,弦的长度各不相同。 – Harrison
在这种情况下,您的基于正则表达式的方法可能会比任何非正则表达式解决方案更好。 –