我的语料库是由成千上万的字符串组成的。我想在每个字符串上运行一个正则表达式来查找特定单词的开头和结尾,包括任何标点符号
我试过写一个正则表达式,其中包含一组可能的单词开头/结尾,包括空格、逗号、句号等常规字符。它还需要包含新行和字符串结尾等元字符
下面是一个字符串示例和我一直尝试使用的正则表达式:
text = "abcd aacd. abcd\n adcd"
my_re = re.compile(r'[ ^]a\wcd[ .,$]')
pat_iter = my_re.finditer(text)
for i in pat_iter:
print(i.group())
我想从中得到的结果是:
abcd
aacd.
abcd
adcd
不幸的是,我不能在方括号集[]
中使用像^
、\n
和$
这样的元字符
有没有办法在一个集合中取消这些字符的转义,以便它们可以用作元字符
编辑: 我不想在有空格的地方用分裂之类的方法来分隔这些词,比如:
text = text.split(" ")
它需要像我上面描述的那样使用正则表达式
这个正则表达式行吗
[ \^]*a\wcd[ .,$]*
(用非常有用的https://regex101.com测试)您可以使用以下regex,为结束条件添加or(
|
)大小写:示例:
你可以用
部分
\ba
匹配wordboundary后跟a
\w
匹配单词字符cd
按字面意思匹配cd
[.,]?
匹配可选的.
或,
\s*
匹配0+个空白字符,这些字符也将匹配换行符Regex demo| Python demo
例如
输出
相关问题 更多 >
编程相关推荐