2016-07-05 68 views
1

我想检查字符串的格式。可能的格式为:正则表达式,由昏迷分隔的字符和 -

-15 
-15,19 
-15-19 
-4C 
-4C-19 
-4C,19 
-4C,5T 
-4C-5T 

以及所有的组合:

-4"-5T,15,8P,10-13 

因此,例如,"4C"_"5T"是无效的,因为有_

Curently我有这个,但它的工作原理中庸之道时只有数字:

Pattern pattern = Pattern.compile("((\\d\\,(?=\\d))|(\\d\\-(?=\\d))|\\d)+"); 

它不会w orks,如果我用'w'代替'd'...

我该怎么办?

(我关于Java的工作)

+0

您的其他要求是什么?从我在这里可以看到的情况来看,它看起来像是带有引号的2个字符文本,并且它们前面是短划线或逗号。 – ChristopherZ

回答

0

你可以试试这个,

Pattern pattern = Pattern.compile("^-\"\\d+\\w?\"(?:-\"\\d+\\w?\")?(?:,\"\\d+\\w?\"(?:-\"\\d+\\w?\")?)*$"); 

DEMO

+0

我很抱歉,但没有“..我会编辑我的帖子 – ZouIou

+0

好吧,我编辑了你的解决方案,它的工作!谢谢你 – ZouIou

0

基于我所看到的,我认为这些都是要求。

  • 可以是-,;然后
  • 2个字母数字字符用双引号

包围这里是你可以使用该模式。

Pattern.compile("([-,]\"\\w{2}\")+") 
相关问题