Regex 正则表达式固定前缀

Regex 正则表达式固定前缀,regex,Regex,我有正则表达式字符串,我想分类,这个正则表达式有固定前缀还是没有 例如: abcdef.*g[0abc]{0,5}hi具有前缀abcdef ]1234vac.*12345具有前缀]1234vac (abc)+123有前缀abc 但是 [A-z]+12345没有固定前缀(它从集合A-z中未知数量的符号开始) 我真的明白这个问题不会以一般形式解决吗?试试这个正则表达式: ^( ( # GENERAL before . (Dot) (?!\w+\?)

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

例如:

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

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


还有,怎么可能想出这么复杂的问题<代码>;)

您想从这些字符串中获取前缀吗?前缀是以“.”结尾的任何字符?@diviadero,不,我认为前缀是以任何非excape regex特殊符号结尾的任何字符
12345[abcde]+12345
前缀是12345,但以
[
结尾。甚至可能很强(这个示例显示了有趣的情况):
123-456
前缀是
12
,但是
123-456
有前缀
123-456
…我想你已经找到了一个通用的解决方案。前缀是“一切都固定”。我不确定我是否正在追赶,但以防万一
[a-z]+
,它保证至少有一个类中的字符。但是,如果
*
不保证存在。干得好!你的解决方案并没有涵盖所有情况,但它看起来像是我想要的。@DenisGavrus如果你告诉我它没有涵盖什么,我可以更改它。另外,如果它回答了你的问题,你介意接受它吗?我想不会一般来说,使用regex解决这个问题是不可能的,因为它有很多大小写、转义特殊字符和其他(从regex
http:\/\/stackoverflow\.com
中获取前缀
http:\/\/stackoverflow\.com\/.\/[\d]+
是很完美的,但我知道用regex也几乎不可能做到这一点(我的任务不是解析url,这只是一个示例))例如,您的解决方法是从regex
(abc)*
中获取前缀
abc
,但它不是前缀,因为*-{0,}也会重复
(abc)?
。不过还是要谢谢你,如果没有其他答案,我以后会接受你的回答answers@DenisGavrus这是很难做到与正则表达式,谢谢!