2015-04-07 172 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如果您发现它足够好,请将此答案标记为已接受。 –

相关问题