我对regex
相对较新。我发现这个regex
正在使用,并且无法理解它是如何工作的。
([\(]*([\w][\/]?[\w]?(%)?(,)?)*|[\/.]|[\w]([\-\*|\+|\\|\<\>|\=]([\(]*[\w][\/]?(%)?[\)]?[\)]?(,)?)+)*[\)]?)*$/
我理解大部分基本语法,但无法理解这意味着什么。
任何明确的信息都将受到赞赏!这是在javascript中使用的标记。
谢谢!
答案 0 :(得分:2)
同样没有不需要的字符:
/(\(*(\w\/?\w?(%)?(,)?)*|[\/.]|\w([-*+\\<>=](\(*\w\/?(%)?\)?\)?(,)?)+)*\)?)*$/
此模式可以匹配此类字符串(或任何内容):
(((a/b%,(((a/b%,///./././(((a/b%,k*((((((((P/%)),)
答案 1 :(得分:2)
你的正则表达式:
([\(]*([\w][\/]?[\w]?(%)?(,)?)*|[\/.]|[\w]([\-\*|\+|\\|\<\>|\=]([\(]*[\w][\/]?(%)?[\)]?[\)]?(,)?)+)*[\)]?)*$/
可视化为:
除非你的正则表达式中有拼写错误,否则它永远不会匹配任何东西;正则表达式以$/
结尾,这意味着字符串的结尾后跟/
,除非您匹配多行。如果这是家庭作业,我会说老师正在开玩笑,因为$/
通常不匹配。
经过一些简化后,你得到:
(\(*(\w\/?\w?(%)?(,)?)*|[\/.]|\w([-*|+\\<>=](\(*\w\/?(%)?\)?\)?(,)?)+)*\)?)*$/
如果您不关心分组,则类似:
(\(|[\/.]|(\w\/?\w?%?,?)|\w([-*|+\\<>=](\(*\w\/?%?\)?\)?,?)+)*\)?)*$/
这可以将(a*|b*)*
简化为(a|b)*
答案 2 :(得分:0)
要了解有关正则表达式的更多信息,请参阅:regex101在此处提供代码并阅读说明。
你的正则表达式:([\(]*([\w][\/]?[\w]?(%)?(,)?)*|[\/.]|[\w]([\-\*|\+|\\|\<\>|\=]([\(]*[\w][\/]?(%)?[\)]?[\)]?(,)?)+)*[\)]?)*$
将匹配
之类的内容(d/f%,
something
122
但是无法匹配像
这样的东西--{}
说明: