正则表达式模式识别Dash和3+字母数字

时间:2014-01-09 09:26:12

标签: regex regex-negation

我正在尝试许多regex模式以匹配以下条件:

字符串应以短划线( - )和3+字母或下划线结尾。

例如:-xyz-abc1_4-uvw。冲刺前一切都很好。

我最接近的是编写单独的场景:.*\b(xyz)$.*\b(uvw)$,它识别以xyz,uvw结尾的模式。

我添加短划线的那一刻,.*\b(\-xyz)$-xyz无法识别。

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

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

我正在寻找更广泛的方法,可以覆盖字符串末尾短划线后出现的3个以上字母。

4 个答案:

答案 0 :(得分:0)

您可以使用以下代码:

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

<强>解释

enter image description here

答案 1 :(得分:0)

分别检查行尾:

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

Demo

答案 2 :(得分:0)

使用下划线和字母/数字

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

答案 3 :(得分:0)

只需从正则表达式中删除单词边界:

(-\w{3,})$