我有正则表达式字符串,我想分类,这个正则表达式是固定前缀还是没有。
例如:
var date = ['2015-02-04T23:54:00.000+01:00','2015-02-04T23:54:00.000+01:00'];
date.map(function(_d) {
var d = new Date(_d)
return d.getFullYear() + '-' + d.getMonth() + 1 + '-' + d.getDay()
}
// if you want to get fancy, you could throw in this function to pad the days and months:
var pad = function (n) {return n<10? '0'+n:''+n;}
var sorted = date.map(function(_d) {
var d = new Date(_d)
return d.getFullYear() + '-' + pad(d.getMonth() + 1) + '-' + pad(d.getDay())
})
console.log(sorted);
的前缀为abcdef.*g[0abc]{0,5}hi
abcdef
的前缀为]1234vac.*12345
]1234vac
的前缀为(abc)+123
但
abc
没有固定的前缀(它从集合A-z的未知数量的符号开始)
我是否真的明白这个问题不会以一般形式解决?
答案 0 :(得分:1)
试试这个RegEx:
^(
( # GENERAL before . (Dot)
(?!\w+\?) # DO NOT MATCH if contains ?
[\w\]\)]+ # Word, ] or ) characters 1 or more times
)|
(?:\((\w+)\))| # Words in between BRACKETS ()
( # BEFORE . (Dot) with ?, * or +
[\w\]\)]+ # Select Characters
(?![?*+]) # DO NOT select last character if there is ?, * or + after it
)
)
告诉我任何其他不起作用的例子,我会改变这个。不过,我已经测试了你问题中的所有例子和评论
此外,甚至可以提出一个问题这个复杂! ;)