regex - 正则表达式固定前缀

标签 regex

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

例如:
abcdef.*g[0abc]{0,5}hi有前缀 abcdef]1234vac.*12345有前缀 ]1234vac(abc)+123有前缀 abc

[A-z]+12345没有固定前缀(它从集合 A-z 中未知数量的符号开始)

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

最佳答案

试试这个正则表达式:

^(
  (                     # 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

告诉我任何其他不起作用的例子,我会改变这个。但是,我已经对您问题中的所有示例进行了测试,并进行了评论

另外,怎么可能提出这么复杂的问题! ;)

关于regex - 正则表达式固定前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36262920/

相关文章:

php - 使用正则表达式捕获多种格式的日期

regex - Nginx 阻止/拒绝访问多个位置正则表达式

regex - 如何为每场比赛生成独特的指导

regex - "if"之外的 Perl 匹配不会在循环中重置 $1

php - preg_replace() 的意外结果

regex - Bash:如何为同一字符串的多个实例 grep 一行?

javascript - 正则表达式替换大括号内的特定单词

javascript - 将 </div> 替换为 <\/div>

Java 模式打印捕获组

jquery - "xxx-xxxxxxx-yy"的输入字段需要验证