正则表达式固定前缀

时间:2016-03-28 13:01:21

标签: regex

我有正则表达式字符串,我想分类,这个正则表达式是固定前缀还是没有。

例如:

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的未知数量的符号开始)

我是否真的明白这个问题不会以一般形式解决?

1 个答案:

答案 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
  )
)

Live Demo on Regex101

告诉我任何其他不起作用的例子,我会改变这个。不过,我已经测试了你问题中的所有例子和评论

此外,甚至可以提出一个问题这个复杂! ;)