![](/img/trans.png)
[英]Regex python - Match newline only if it is followed by number or special character and space
[英]Regex match special character + in python
这是我的弦
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)
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 +。
您的正则表达式将无法找到+
。 我已经在这里用测试数据重写了它。 请让我知道您不想要的输出中有什么。
classe ([\w+-]*)
这意味着您将在编译时替换它。 所以
def cerca_match(w):
return re.findall(r'classe ([\w+]*)'.format(w), flags=re.IGNORECASE)
这意味着您必须将其返回给var,例如
results = circa_match(w)
results
将有您不同的匹配。
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.