2011-09-23 73 views
-4

請幫忙用slu re正則表達式。
我將不勝感激,如果代碼將在python中給出。
條件:正則表達式匹配slu 012

1 #valid 
1-1 #valid 
1-1-1 #valid (infinite \d-\d) 

1- #invalid 
-1 #invalid 
-1- #invalid 

*NOTE 1 = \d 
+0

你應該展示的是你已經嘗試過,所以我們可以批判,而不是什麼只是要求出手。 –

+0

看起來像功課。 –

回答

5

我會這樣寫:

compiled = re.compile(r'\d(?:-\d)*$') 
result = compiled.match(string_to_parse) 
2

如何:

re.match(r'\d(?:-\d)*$', s) 
+1

由於您使用的是'match'(而不是'search'),所以不需要'^'。最好不要使用非捕獲組''(?: - \ d)',因爲它比捕獲更快並且不需要捕獲任何東西。 – ovgolovin

+0

@ovgolovin:謝謝,更新。 – NPE