日期:2014-05-17  浏览次数:20899 次

求个正则。。。。
求个取序号的正则

比如

Title 22 Judiciary ==> Title 22

Subtitle A Judicial Administration ==> Subtitle A

序号前必定有空格,但有可能是字符串末尾

序号的形式有:纯数字、单个字母、罗马数字(由字母组成,但不会超过6位,即由IVX组成)、22.1(带小数点的数字)、22-B、G22-A、B-11、SE1A

我自己写了个 [\s\S]*? (([\d]+)|([a-zA-Z]{1,1})|([IVX]+){1,6}|([\d]+\.[\d]+)|([\d]+-[a-zA-Z]+)|([a-zA-Z]+-[\d]+)|([a-zA-Z]+[\d]+-[a-zA-Z]+)|([a-zA-Z]+[\d]+[a-zA-Z]+))?( |$)

但总是有很多情况取的结果不对

Proposed uniform application for license as a legal consultant,比如这个字符串是没有序号的,结果却被当作有序号的字符串处理了。。。

------解决方案--------------------
现在只写了
纯数字、单个字母、罗马数字(由字母组成,但不会超过6位,即由IVX组成)、22.1(带小数点的数字)

其他的楼主 可以自己加
var re = /^(.*?\s(?=(\d+(\.\d+)?|[a-z]|[ixv]{1,6}|其他|其他)\s)[^\s]+)\s?.*$/i;