我有正则表达式字符串,我想分类,这个正则表达式有固定前缀还是没有。
例如: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/