您好 我想要一个以下形式的字符串的正则表达式(Java): 从R或S开始,然后是空格,然后是数字或数字/数字或数字/数字/数字 例子: R 51/53,R 41,R 43,S 36/37/39,S 2,S 24,S 26/2
提前致谢
答案 0 :(得分:2)
试试这个
^[RS]\s\d+(?:/\d+){0,2}$
说明:
^
行开头
[RS]
字符类匹配1或出现R或S
\s
空格,这也会匹配制表符或其他空格,可以用空格替换。
\d+
一个或多个数字
(?:/\d+){0,2}
非捕获组(更好的性能)a /后跟1个或更多数字,发生在0到2次之间。
$
行尾
答案 1 :(得分:1)
你的意思是
[RS] [0-9]+(/[0-9]+)*
答案 2 :(得分:1)
[RS] (\d+|\d+/\d+|\d+/\d+/\d+)
答案 3 :(得分:1)
所以基本的正则表达式是:
[RS] ([0-9]+)(/[0-9]+){0,2}
但它需要一些掩盖,我想:
String regex = "[RS] ([0-9]+)(/[0-9]+){0,2}";
System.out.println (param + "\t" + param.matches (regex));
我总是很困惑,因为sed,java,scala - 所有人都有不同的意见,不知道要掩饰什么。 :)
(更新:testet,修改掩蔽)
答案 4 :(得分:0)
'(R|S) ((\d+)/){0,2}\d+'
答案 5 :(得分:0)
我不是100%自信,但我认为:R|S' '[0-9](/[0-9])*
答案 6 :(得分:0)
你可以试试这个:(R | S)(\ d /?)+