获取具有相同开头和结尾的所有字符串以及其间任意数量的相同字母

时间:2017-11-07 10:54:48

标签: python regex pandas

我想在文本中搜索具有相同开头和结尾字母以及其间任意数量的相同字母的单词(也应该不区分大小写),例如lol,lool,Loool,loooooool等都应该被捕获。

我想为这些单词过滤一个Pandas数据帧 例如df[df.message.str.contains('lol', case=False)]

1 个答案:

答案 0 :(得分:0)

使用反向引用,例如:

message_list = ['lol', 'look', 'looloo', 'lool', 'Loool', 'LaoL', 'loooooool']

import re

for word in message_list:
    m = re.match(r'^(.)(.)\2*\1$', word, re.IGNORECASE)
    if m:
        print(word, "matched")

给出:

lol matched
lool matched
Loool matched
loooooool matched

\1匹配第一个括号组中匹配的任何内容,\2第二个匹配,依此类推。