问题描述
使用环顾四周来提取空白边界内的单词:
r'(?<!\S)Male-Cat(?!\S)'
由于(?<!\S)
和(?!\S)
是零宽度的断言,因此不会占用空格,并且会找到连续的匹配项。
解决方法
我需要提取双Male-Cat
:
a = "Male-Cat Male-Cat Male-Cat-Female"
b = re.findall(r'(?:\s|^)Male-Cat(?:\s|$)',a)
print (b)
['Male-Cat ']
c = re.findall(r'\bMale-Cat\b',a)
print (c)
['Male-Cat','Male-Cat','Male-Cat']
我需要提取树时间Male-Cat
:
a = "Male-Cat Male-Cat Male-Cat"
b = re.findall(r'(?:\s|^)Male-Cat(?:\s|$)',a)
print (b)
['Male-Cat ',' Male-Cat']
c = re.findall(r'\bMale-Cat\b','Male-Cat']
可以通过第一种方法正确解析的另一个字符串:
a = 'Male-Cat Female-Cat Male-Cat-Female Male-Cat'
a = 'Male-Cat-Female'
a = 'Male-Cat'
缺少什么?您能解释什么是错误的,什么是正确的方法吗?