2015-07-10 135 views
0

我在Python中使用if/elif语句来匹配某些字符串,但我需要帮助匹配一个特定类型的字符串。我希望所有最后有括号'()'的字符串匹配相同的if条件。例如,string = "Tennis (5.5)"string = "Football (6.3)"如何使用正则表达式来检测字符串末尾的括号?

def method(string): 
    if (string has parenthesis in the end): 

我可以使用一些正则表达式吗?我不知道如何去做。

+1

'')$ “'?但为什么一个正则表达式,而不是'.endswith(')')'? – jonrsharpe

回答

2

我想你的意思是这样,

if re.search(r'(?m)\([^()]*\)$', line): 

$称,我们正处于一个行的末尾。

+0

谢谢你的回答。我有另一个问题。如果我有几个字符串具有相同的名称,但括号中的值不同。例如:string =“points(0.4)”或“points(0.12)”。我如何写一个正则表达式来匹配这样的字符串?谢谢 – user2709885

+0

对整数以及浮点数都尝试使用'^ points \(\ d + \。\ d + \)$',这将是'^ points \(\ d +(?:\。\ d +)?\)$ ' –

+0

感谢它的工作:) – user2709885

0

如果你喜欢正规表达式,这可能是最简单的解决方案。它声称,如果在线路的一端的右括号,而不管尾随空白:

“\)$”

例如:

test1 = "Tennis (5.5) " 
test2 = "Football (6.3)" 

res1 = bool(re.search(r"\)$", test1.strip())) 
res2 = bool(re.search(r"\)$", test2.strip())) 

print(res1, res2, sep='\n') 

>>> True 
>>> True 
相关问题