我的问题非常简单。有人可以为我解释这个python正则表达式吗?
neg_pattern = re.compile(r'\b(' + '|'.join(negations_dic.keys()) + r')\b')
negations_dic就在这里:
negations_dic = {"isn't":"is not", "aren't":"are not", "wasn't":"was not", "weren't":"were not"}
我想知道(和)和' |'意思是。
这是使用上述正则表达式的命令:
neg_handled = neg_pattern.sub(lambda x: negations_dic[x.group()], lower_case)
x.group
的含义是什么意思?它是否返回negation_dic
中的键值对?
答案 0 :(得分:0)
在正则表达式中:
|
表示'或' (所以任何一个选择都会这样做)和'()'表示匹配组。
因此,'(is|are|was)'
将匹配任何字词'is'
,'are'
或'was'
。
但是,对我而言,这个问题似乎比正则表达更加蟒蛇。
'|'.join(['a', 'b', 'c'])
将生成匹配的组'(a|b|c)'
,该组将匹配列表中的任何元素。