我正在寻找一个匹配模式xxxx / xxxxU的正则表达式,其中x可以是0-9,而末尾的“U”是可选的。
有效示例:1111 / 1111,1111 / 1111U 示例无效:1111 / 1111Z,111/1111
我可以到达'[0-9] {4} / [0-9] {4}',但我不知道如何在最后处理可选的“U”。
答案 0 :(得分:2)
[0-9]{4}/[0-9]{4}U?
或者如果用\ d替换数字范围(对于数字字符):
\d{4}/\d{4}U?
?
表示零或前一个字符之一。所以U
为零或一个。 Test it
整个字符串1111 \ 2222U将匹配,而1111 \ 2222Z的匹配将包括数字斜杠数字部分但不包括Z.
如果以U之外的任何字母结尾的字符串片段根本不匹配,请尝试以下操作:
^\d{4}/\d{4}U?$
如果数字 - 斜杠号码加上可选的U是字符串中唯一的内容(test it)或
,则匹配\d{4}/\d{4}U?(\s|$)
如果数字斜杠数加上可选的U后跟一个空格字符(包括在匹配中)或字符串的结尾,则匹配。 (Test it。)
(注意:测试链接显示" /"在" \" [例如" /& #34;] - 该实现所需的东西。我不熟悉Oracle的正则表达式语法,因此在该平台上可能不需要这样做。)
答案 1 :(得分:1)
我会用'[0-9] {4} / [0-9] {4} U?'或'[0-9] {4} / [0-9] {4} U {0,1}'
发现于:http://docs.oracle.com/cd/B12037_01/appdev.101/b10795/adfns_re.htm
答案 2 :(得分:1)
答案 3 :(得分:0)
感谢您的所有评论,但有些情况您的回答未涵盖。
' ^ [0-9] {4} / [0-9] {4} U $'?
上述所有上述案例均适用