如果所有的數據都與你的例子一致的,那麼這應該工作:
編輯:更新以匹配整條線。這將排除無效列表中的任何子字符串匹配。但是,它假定OP不想匹配任何子字符串。
^[a-z0-9]+_[0-9\/]+_[A-Z0-9:\s]+$
例如,在蟒蛇:
>>> import re
>>> s = 'b_06/18/2012_06:02:34 PM'
>>> pattern = '^[a-z0-9]+_[0-9\/]+_[A-Z0-9:\s]+$'
>>> m = re.match(pattern, s)
>>> m.group(0)
'b_06/18/2012_06:02:34 PM' # <======== matches from valid list
>>> s = 'CCC Valuation_CCC Valuation_b_06/28/2012_05:57:20 PM'
>>> m = re.match(pattern, s)
>>> m.group(0)
Traceback (most recent call last): # <======= does NOT match from invalid list
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'
你嘗試過什麼了嗎?這似乎是一個非常簡單的正則表達式。如果你對正則表達式一無所知,你應該首先找到一個教程,然後回過頭來問一個真正的問題。 – siride
我已經嘗試了不同的正則表達式,但我不知道如何讓它只捕獲兩個下劃線字符串,而不是三個。 – anton2g
你可以發佈那些正則表達式,所以我們可以看到你有什麼?你可能並不遙遠。不過,我們不會給你答案。 – siride