登录
首页 >  Golang >  Go问答

如何从前瞻转换正则表达式

来源:Golang技术栈

时间:2023-04-12 09:20:41 471浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《如何从前瞻转换正则表达式》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下golang,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

我在 PHP 和其他代码中有以下正则表达式做得很好。

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

正则表达式可视化

调试演示

事实证明,Go 不支持lookheads,我不知道如何转换它。

Debuggex 链接有一些测试数据,我以前用它来限定代码。

正确答案

首先,交替的左侧不/^...匹配,因为/在输入开始之前永远不会出现。

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

((?:[A-Z0-9]+) ).*\d.*

所使用的术语" +?"实际上与 just 相同" "

但是请注意,这比原来消耗更多的输入,这是不可避免的。您的原始比赛现在在第 1 组。

今天关于《如何从前瞻转换正则表达式》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于golang的内容请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表