Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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
如何从lookahead转换regexp_Regex_Go - Fatal编程技术网

如何从lookahead转换regexp

如何从lookahead转换regexp,regex,go,Regex,Go,我有以下PHP中的正则表达式和其他代码,它们做得很好 /^(?:(?=[^ ]+\d)(?:[A-Z0-9]+))|(?:[A-Z0-9]+) +?(?=.*\d)(?:[A-Z0-9]+)? 事实证明,Go不支持lookheads,我不知道如何将其转换为其他版本 Debuggex链接中有一些我以前用来验证代码的测试数据。首先,替换的左侧与任何内容都不匹配,因为在输入开始之前,/永远不会出现 只剩下(?:[A-Z0-9]+)+(?=.*\d),可以表示为: ((?:[A-Z0-9]+) )

我有以下PHP中的正则表达式和其他代码,它们做得很好

/^(?:(?=[^ ]+\d)(?:[A-Z0-9]+))|(?:[A-Z0-9]+) +?(?=.*\d)(?:[A-Z0-9]+)?

事实证明,Go不支持lookheads,我不知道如何将其转换为其他版本


Debuggex链接中有一些我以前用来验证代码的测试数据。

首先,替换的左侧与任何内容都不匹配,因为在输入开始之前,
/
永远不会出现

只剩下
(?:[A-Z0-9]+)+(?=.*\d)
,可以表示为:

((?:[A-Z0-9]+) ).*\d.*
所使用的术语
“+?”
实际上与
完全相同

然而,请注意,这比原始文件消耗更多的输入,这是不可避免的。您的原始匹配项现在位于第1组。

如果您可以为正则表达式提供精确的规格,将更容易为您提供帮助。现在还不清楚你是需要数字作为比赛的一部分,还是仅仅要求数字在预期比赛之后的某个地方。