什么是" -混合;正则表达式中的平均值

What does "?-mix:" mean in regex

本文关键字:正则表达式 平均值 混合 quot 什么      更新时间:2023-09-26

什么是"?-mix:"在正则表达式的意思,也这是有效的在javascript/jQuery?如果无效,用什么来代替?

Update:这是完整的正则表达式/(?-mix:^[^,;]+$)/

它在chrome中使用的javascript,我得到以下错误:

Uncaught SyntaxError: Invalid regular expression: /(?-mix:^[^,;]+$)/: Invalid group

注释:我发现这很有用:如何将ruby regex转换为javascript?- (?i-mx:..)和Rails 3.0.3

假设perl上下文,(?-mix)

  • -m disable多行匹配
  • -i disable不区分大小写的匹配
  • -x禁用扩展正则表达式空白

请看这里:http://www.regular-expressions.info/modifiers.html

不是所有的正则表达式都支持这个。JavaScript和Python将所有模式修饰符应用于整个正则表达式。它们不支持(?-ismx)语法,因为当模式修饰符应用于整个正则表达式时,关闭一个选项是没有意义的。所有选项默认为关闭。

既然你现在已经明确了这里的上下文是javascript,我不认为javascript支持该标志语法,所以它抱怨^被发现在一个正则表达式的中间。因为你永远不能在匹配的中间找到匹配的开始,这使得一个无效的正则表达式。

在javascript中,您可以在正则表达式本身之外指定标志,例如:

var re = /^[^,;]+$/mi;

或者像这样作为参数:

var re = new RegExp("^[^,;]+$", "mi");

javascript不支持x标志,这个特殊的正则表达式不需要i标志。

这个特殊的regex试图做的是告诉你,你要匹配的字符串是否包含,;以外的所有字符,并且不为空。