我需要一个正则表达式,匹配至少包含一个字母A-Z
的字符串,以及可选的.-¤
(点,短划线和“太阳”的任意数字和组合(英语中叫什么? ))。
匹配的字符串将是
A
AB
A-.
¤A
但不是
-.
¤
因为他们没有任何信件。
我的第一次尝试当然是^[A-Z¤-.]*$
,但也匹配没有字母的字符串。
[A-Z]+
匹配至少包含一个字母的字符串
[¤.-]*
匹配其中可能包含¤.-
的字符串
我试图通过多种方式将这两者结合起来,但还没有设法解决我的问题。
当我不能指望字母和字符之间的任何特定顺序¤.-并同时排除任何其他字符时,有没有办法将这两个最后一个正则表达式组合在一起?
也许群体或非捕获群体与它有关,但我还没有完全理解它们。
PS我正在使用DB2函数REGEXP_LIKE
来实现它。
答案 0 :(得分:1)
您可以使用
^[A-Z.¤-]*[A-Z][A-Z.¤-]*$
<强>详情
^
- 字符串开头[A-Z.¤-]*
- 0+大写字母,.
,¤
或-
[A-Z]
- 大写字母[A-Z.¤-]*
- 0+大写字母,.
,¤
或-
$
- 字符串结束。