检查部分字符串列表是否在单个字符串中?

苹果00800

希望同样的问题还没有得到回答(我看了但找不到)。

我有一个部分字符串列表:

date_parts = ['/Year', '/Month', '/Day',....etc. ]

我有一个字符串。例如

string1 = "Tag01/Source 01/Start/Year"

或者

string1 = "Tag01/Source 01/Volume"

除了使用 for 循环之外,检查字符串中是否包含任何 date_parts 字符串的最有效方法是什么?

对于信息,实际上 string1 实际上是许多字符串的另一个列表,我想删除这些包含 date_parts 列表中的字符串的任何字符串。

拉屎

从部分字符串编译正则表达式。re.escape()在它们包含正则表达式语言中的控制字符的情况下使用

import re
date_parts = ['/Year', '/Month', '/Day']
pattern = re.compile('|'.join(re.escape(s) for s in date_parts))

然后使用re.search()看是否匹配。

string1 = "Tag01/Source 01/Start/Year"
re.search(pattern, string1)

正则表达式引擎可能比原生 Python 循环更快。


对于您的特定用例,请考虑连接所有字符串,例如

all_string = '\n'.join(strings+[''])

然后,您可以在一次调用正则表达式引擎时一次性完成所有这些操作。

pattern = '|'.join(f'.*{re.escape(s)}.*\n' for s in date_parts)
strings = re.sub(pattern, '', all_string).split('\n')[:-1]

当然,这假设您的任何字符串都没有'\n'. 如果需要,您可以选择一些不在您的字符串中的其他字符来加入和拆分。'\f'例如,应该很少见。以下是您可以使用'@'.

all_string = '@'.join(strings+[''])
pattern = '|'.join(f'[^@]*{re.escape(s)}[^@]*@' for s in date_parts)
strings = re.sub(pattern, '', all_string).split('@')[:-1]

如果这还不够快,您可以尝试使用更快的正则表达式引擎,例如rure

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

给定一个字符串列表,如何检查这些字符串是否在列表中?

来自分类Dev

将字符串列表转换为Clojure中的单个字符串

来自分类Dev

将字符串列表转换为单个字符串

来自分类Dev

将字符串列表转换为单个字符串

来自分类Dev

将字符串列表串联为单个字符串

来自分类Dev

检查是否存在至少一个字符串列表中

来自分类Dev

Scala - 从单个字符串中删除字符串列表/映射中的所有元素

来自分类Dev

查找字符串列表中的字符串是否在Esper中的另一个字符串列表中

来自分类Dev

比较字符串列表中字符串中每个字符的最快方法

来自分类Dev

如何在字符串列表中的每个字符串的开头添加字符

来自分类Dev

如何知道一个字符串是否属于python中字符串列表的组合?

来自分类Dev

使用indexOf()遍历单个字符串列表

来自分类Dev

整个字符串命令和popen中的字符串列表之间的区别

来自分类Dev

如何反转\ n字符串列表中的每个字符串?

来自分类Dev

Dart检查字符串列表中的一部分字符串是否包含元素

来自分类Dev

显示多个字符串列表中的一个字符串

来自分类Dev

测试单个字符串中是否有多个子字符串?

来自分类Dev

如何在Unity(C#)中将字符串列表转换为单个字符串

来自分类Dev

将实体中的列表转换为数据库中的单个字符串列

来自分类Dev

Python检查多个字符串中是否有空字符串

来自分类Dev

如何在批处理脚本的字符串列表中提取每个字符串的特定部分?

来自分类Dev

如何用Groovy检查字符串是否是字符串列表中任何字符串的一部分?

来自分类Dev

如何用Groovy检查字符串是否是字符串列表中任何字符串的一部分?

来自分类Dev

如何检查字符串列表中的字符串是否在pandas dataframe列中

来自分类Dev

检查C#中的字符串列表中是否存在字符串

来自分类Dev

python - 当两个字符串都存储在python的列表中时,如何检查字符串是否包含子字符串?

来自分类Dev

python中包含单个字符串而不是单个字母的嵌套列表

来自分类Dev

检查一个字符串是否包含列表中的至少两个字符串

来自分类Dev

检查一个字符串是否包含列表中的至少两个字符串

Related 相关文章

  1. 1

    给定一个字符串列表,如何检查这些字符串是否在列表中?

  2. 2

    将字符串列表转换为Clojure中的单个字符串

  3. 3

    将字符串列表转换为单个字符串

  4. 4

    将字符串列表转换为单个字符串

  5. 5

    将字符串列表串联为单个字符串

  6. 6

    检查是否存在至少一个字符串列表中

  7. 7

    Scala - 从单个字符串中删除字符串列表/映射中的所有元素

  8. 8

    查找字符串列表中的字符串是否在Esper中的另一个字符串列表中

  9. 9

    比较字符串列表中字符串中每个字符的最快方法

  10. 10

    如何在字符串列表中的每个字符串的开头添加字符

  11. 11

    如何知道一个字符串是否属于python中字符串列表的组合?

  12. 12

    使用indexOf()遍历单个字符串列表

  13. 13

    整个字符串命令和popen中的字符串列表之间的区别

  14. 14

    如何反转\ n字符串列表中的每个字符串?

  15. 15

    Dart检查字符串列表中的一部分字符串是否包含元素

  16. 16

    显示多个字符串列表中的一个字符串

  17. 17

    测试单个字符串中是否有多个子字符串?

  18. 18

    如何在Unity(C#)中将字符串列表转换为单个字符串

  19. 19

    将实体中的列表转换为数据库中的单个字符串列

  20. 20

    Python检查多个字符串中是否有空字符串

  21. 21

    如何在批处理脚本的字符串列表中提取每个字符串的特定部分?

  22. 22

    如何用Groovy检查字符串是否是字符串列表中任何字符串的一部分?

  23. 23

    如何用Groovy检查字符串是否是字符串列表中任何字符串的一部分?

  24. 24

    如何检查字符串列表中的字符串是否在pandas dataframe列中

  25. 25

    检查C#中的字符串列表中是否存在字符串

  26. 26

    python - 当两个字符串都存储在python的列表中时,如何检查字符串是否包含子字符串?

  27. 27

    python中包含单个字符串而不是单个字母的嵌套列表

  28. 28

    检查一个字符串是否包含列表中的至少两个字符串

  29. 29

    检查一个字符串是否包含列表中的至少两个字符串

热门标签

归档