python,re.search/re.split 用于看起来像标题的短语,即以大写字母开头

标签 python regex ignore-case

我有一个短语列表(由用户输入),我想在文本文件中找到它们,例如:

    titles = ['Blue Team', 'Final Match', 'Best Player',] 
    text = 'In today Final match, The Best player is Joe from the Blue Team and the second best player is Jack from the Red team.'

1./我可以像这样找到这些短语的所有出现

    titre = re.compile(r'(?P<title>%s)' % '|'.join(titles), re.M)
    list = [ t for t in titre.split(text) if titre.search(t) ]

(为简单起见,我假设完美的间距。)

2./我还可以找到这些短语的变体,例如“蓝队”、“决赛”、“最佳球员”……使用 re.I,如果它们出现在文本中。

但我想限制为仅查找首字母大写的输入短语的变体,例如文本中的“蓝队”,无论它们如何作为输入输入,例如“蓝队”。

是否可以写一些东西来“阻止”短语的一部分的 re.I 标志?在伪代码中,我想象生成类似“[B]lue Team|[F]inal Match”的内容。

注意:例如,我的主要目标不是计算文本中输入短语的频率,而是提取和分析它们之间或周围的文本片段。

最佳答案

我将使用 re.I 并将 list-comp 修改为:

l = [ t for t in titre.split(text) if titre.search(t) and t[0].isupper() ]

关于python,re.search/re.split 用于看起来像标题的短语,即以大写字母开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9407718/

相关文章:

python - 在 matplotlib 轴上设置科学限制后调整指数文本

python - 正则表达式 - python 2.6 和 3.3 中的不同输出

Windows 上的 Git : Can't switch branch after renaming a file (only changed case)

c# - 匹配多行的正则表达式选项以及忽略大小写

c# - 在 List<T> 中查找项目

Python:创建新列来计算另一列中发生的次数

python - 比较 Python 中的两个表并返回已更改的行

pythongenerate_signed_query_string blob返回错误的查询字符串

python - 从文本文件读取正则表达式时如何防止 Python 转义特殊字符?

java - 如何为给定字符串中的每个单词添加前缀