regex - 正则表达式效率
问题描述
给定这个字符串
xxv jkxxxxxxxxxxxxxxx xxyu xxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxAp oSxx
xxAp oSxxxxxxxxxxxxxxxxxxxxxj xxxxxxxxxuixxxxxxxxxxx axxxxxxxxxxxxxxxxxx
和这个正则表达式
^[^\r\n]*Ap oS[^\r\n]*
我正在寻找匹配包含任何地方的任何行,如此处Ap oS
所示,它就是这样做的。
现在,通过查看调试器,如果我理解正确的话,由于回溯,第一次匹配需要 16 步,第二次匹配需要 80 步。
我的问题是,如何编写这个正则表达式来减少步数?
[^\r\n]*
我想用替换第一个(?!Ap oS)*
来匹配所有不是的Ap oS
,直到找到Ap oS
,但我不确定我是否得到了概念或语法错误,或两者兼而有之。
任何帮助表示赞赏
解决方案
推荐阅读
- node.js - 从 127.0.0.1 Angular 获取数据
- php - Laravel:如果表列的名称采用点符号形式,如何创建访问器和修改器?
- angular - 导航栏中的角度显示帐户登录
- c# - 统一的两个玩家移动触摸问题
- javascript - css-将相同的类组合在一起并包装
- javascript - JavaScript obj[property] 抛出“属性未定义”而不是给出未定义的值
- javascript - CORS 策略已阻止访问获取:请求的资源上不存在“Access-Control-Allow-Origin”标头
- bash - 如何将 Unicode 字符串转换为 Unicode 转义序列?
- reactjs - 如何在 React 中显示倒数计时器
- security - elasticsearch 在正在运行的集群上应用安全性