2014-01-09 41 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

相关问题