(^\d{5}$)|(^\d{9}$)
为什么这个正则表达式使用ruby在线验证器有效,但是Eclipse中的相同表达似乎无效?
答案 0 :(得分:1)
Eclipse可能只识别^
作为输入的开头,$
作为输入的结尾,而不是行的开头和结尾。尝试启用多行模式:
(?m)(?:(^\d{5}$)|(^\d{9}$))
答案 1 :(得分:0)
使用双反斜杠:
(^\\d{5}$)|(^\\d{9}$)
这是因为在Java和C ++以及大多数其他语言中,反斜杠是字符串中的转义字符。要获得文字反斜杠,必须输入两个反斜杠。
为了进一步解释,我会做一个表:
\t | tab character
\n | newline character
\d | ?????
\\d | literal backslash, then "d"
在Ruby(以及JavaScript和其他一些语言)中,使用特殊的分隔符设置正则表达式,如下所示:
myRegex = /\d+/
这个特殊的“文字正则表达式表示法”让程序知道你正在创建一个正则表达式,因此它允许你使用\d
而不转义它。