Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python正则表达式的javascript等价物是模式否模式_Javascript_Python - Fatal编程技术网

python正则表达式的javascript等价物是模式否模式

python正则表达式的javascript等价物是模式否模式,javascript,python,Javascript,Python,在python中,有一个语法-如果存在一个捕获组,那么x或者y e、 g pat=re.compile('(?:(a)|(c))b(?(1)a | c)#应仅与'aba'或'cbc'匹配 >>>pat.match(‘abc’) 没有一个 >>>配码(‘aba’) >>>个人比赛(“cba”) 没有一个 >>>专利匹配(“cbc”) 如何在javascript中实现类似的表达式 导致了一种将python正则表达式语法转换为javascript的通用方法 (?(id/名称)是模式|否模式) 我尝

在python中,有一个语法-如果存在一个捕获组,那么x或者y e、 g

pat=re.compile('(?:(a)|(c))b(?(1)a | c)#应仅与'aba'或'cbc'匹配 >>>pat.match(‘abc’) 没有一个 >>>配码(‘aba’) >>>个人比赛(“cba”) 没有一个 >>>专利匹配(“cbc”) 如何在javascript中实现类似的表达式

导致了一种将python正则表达式语法转换为javascript的通用方法

(?(id/名称)是模式|否模式)

我尝试了一些想法,但还没有找到一种有效的方法

对于这种特殊情况,您不需要if/else语法,您可以反向引用单个捕获组:

const模式=/([ac])b\1/;
console.log(
模式测试(“abc”),
模式测试(“aba”),
模式测试(“cbc”),

);我不确定Javascript是否像python那样具有条件语句,但我认为类似的东西应该可以工作:


/(.+(?你尝试过什么想法?我在考虑lookbehinds,但由于表达式的顺序,它不起作用。给出我的答案后,我认为即使这样也应该起作用:
((?:a | c)b(?:a | c))
对吗?如果你只是想在最后再次匹配相同的模式,那么你应该使用其他现有的模式……这两个建议非常有效——但我认为我无法将它们转化为通用方法。另外,用例是python的javascript编译器。例如,使用python的命名捕获组并转换为Java非常简单Script命名为capture group syntax。但是对于这种语法,我甚至不知道是否可能。作为一个注释,这可能更好。这个问题特别要求一种通用方法