这是我的字符串
relation="da incasso monoporta classe A+ "
我需要提取 A + (效率等级)
我必须尝试列出(A,A+,A++,A+++,B,C...etc)
所以我做了一个循环
for token in dictionary:
令牌的一个例子是A +
但是我无法在我的字符串中找到A +标记(在问题开头就称为关系)。
我使用此函数来捕获字符串中的内容
res=cerca_match(token)(relation)
con cerca_match定义如下:
def cerca_match(w):
return re.compile(r'\b({0})\b'.format(w), flags=re.IGNORECASE).findall
我得到的是res =“A”但预期的输出是res =“A +”
出了什么问题?
*更新*
我需要修改此
def cerca_match(w):
return re.compile(r'\b({0})\b'.format(w), flags=re.IGNORECASE).findall
我需要传递必须匹配的令牌(在这种情况下为“A +”)
****更新****
def cerca_match(w):
return re.compile(r'\b({0})\b'.format(w), flags=re.IGNORECASE).findall
我需要将值传递给此函数...我使用此函数来捕获一些简单的字符串
\b(classe)\b
\b(monoporta)\b
但是如果我传递像“A +”
这样的标记,那么该函数也必须有效所以正则表达式将是
\b(A+)\b
但是正则表达式无法捕获关系字符串中的A +。
答案 0 :(得分:0)
你的正则表达式不会找到+
。我用测试数据here重写了它。请让我知道您不想要的输出内容。
classe ([\w+-]*)
这意味着你将在编译中替换它。所以
def cerca_match(w):
return re.findall(r'classe ([\w+]*)'.format(w), flags=re.IGNORECASE)
表示您必须将其返回到var,例如
results = circa_match(w)
results
将有不同的匹配。
答案 1 :(得分:0)
import re
relation="da incasso monoporta classe A+"
print(re.findall("[A-Z]\++|[A-Z]",relation))
>>> ['A+']
这个匹配(A,A+,A++,A+++,B,C...etc)
import re
relation="da incasso monoporta classe A+"
def cerca_match(w):
return re.findall("[A-Z]\++|[A-Z]",w)