正则表达式查找字母和特定的可选字符

问题描述:

我需要一个匹配至少包含一个字母的字符串的正则表达式A-Z以及可选的任意数字和组合.-¤(点,短划线和“sun”(它在英语中称为什么? ))。正则表达式查找字母和特定的可选字符

匹配的字符串会

A 

AB 

A-. 

¤A 

但不是

-. 

¤ 

,因为他们没有收到任何信件。

我的第一次尝试当然是^[A-Z¤-.]*$,但它匹配没有字母的字符串。

[A-Z]+与至少一个字母

[¤.-]*匹配字符串可能有¤.-在他们

我一直在努力,这两个最后的多种方式结合起来,但还没有设法解决匹配字符串我的问题。

当我不能指望字母和字符之间有任何特定的顺序时,是否有办法将这两个最后的正则表达式结合起来?同时排除任何其他字符?

也许群体或非捕获群体与它有关,但我还没有完全理解这些。

PS我正在使用DB2函数REGEXP_LIKE来实现它。

您可以使用

^[A-Z.¤-]*[A-Z][A-Z.¤-]*$ 

详细

  • ^ - 0+大写字母,.¤-
  • [A-Z] - - 一个upperca串
  • [A-Z.¤-]*开始SE信
  • [A-Z.¤-]* - 0+大写字母,.¤-
  • $ - 字符串的结尾。

看如何this regex matches sample strings