2015-04-07 79 views
0

我知道這可能是一個簡單的問題,但我找不到我的正則表達式的糾正一個小時後,所以我決定問它。正確的字符串開始和結束的數字

我想要的是:

^[0-9]{14}.*?_[0-9]{13}$ 

的字符串

58300000164329_1422947665835 
58300000168754_ARA_DE_A_1422947398449 
Customer_information_Refrigeration_Transition_1421678259290 
58300000157376_ara_es_d_1421678030359 
20120612_6_1421677861200 

主要的是先從14號與 '_' 結尾和13號。我的正則表達式中的問題在哪裏?

任何幫助將不勝感激,非常感謝!

+1

哪些字符串無效?你的正則表達式不匹配'Customer_information_Refrigeration_Transition_1421678259290'和'20120612_6_1421677861200',你想匹配它們嗎?請參閱https://regex101.com/r/iJ6dJ7/1。 –

回答

1

在你的正則表達式中,你需要添加2 _。一個將永遠在那裏,另一個是可選的。

使用此更新的正則表達式:

\b([0-9]{14}_)?.*_?[0-9]{13}\b 

RegEx Demo & Explanation

編輯:

基於您的評論,請使用這個表達式:.*_[0-9]{13}\b

Demo & Explanation

+0

。* _?[0-9] {13} \ b是我猜想的主要答案,因爲字符串「Customer_information_Refrigeration_Transition_1421678259290」,非常感謝您的更正! – Hayra

+0

@Hayra這一個更加正確:'。* _ [0-9] {13} \ b'請注意,在數字前總會有一個'_',所以在正則表達式中不需要'?'。 –

+0

@Hayra如果您發現它足夠好,請將此答案標記爲已接受。 –

相關問題