2014-01-09 43 views
0

我嘗試了許多regex模式來匹配下列條件:正則表達式識別短跑和3+字母數字

該字符串應該以短線結尾( - )和3+字母或下劃線。

例如:-xyz-abc1_4,-uvw。破折號之前的任何事情都很好。

最近我可以達到的是編寫單獨的場景:.*\b(xyz)$.*\b(uvw)$它識別以xyz,uvw結尾的模式。

當我添加短劃線時,它是.*\b(\-xyz)$,-xyz未被識別。

我在Salesforce Apex Trigger中使用了以下代碼。

Pattern.matches('.*\b(xyz)$', stringToMatch); 

我要尋找更廣泛的方法,可以在字符串末尾的破折號後覆蓋3+字母任何發生。

+0

' - [A-ZA-Z] {3,} $' – falsetru

+0

有在'-'之前允許哪些字符的限制? –

+1

您使用哪種編程語言,文本編輯器,IDE或其他應用程序或軟件工具來應用這些正則表達式? – Ned

回答

0

您可以使用下面的代碼:

.*-[a-zA-Z]{3,}$ 

說明:

enter image description here

0

分別檢查行的末尾:

(?i)-[a-z]{3}\w*$ 

Demo

0

以下劃線和字母/數字

-[0-9a-zA-Z_]{3,}$ 
0

剛剛從你的正則表達式刪除單詞邊界:

(-\w{3,})$ 
+0

感謝\ W,使其全面。 – user2989971

+0

@ user2989971:它是'\ w'(小寫),'\ W'大寫意味着完全相反! – Toto

相關問題