登录
首页 >  Golang >  Go问答

采取否定前瞻替代方案

来源:stackoverflow

时间:2024-04-24 17:18:34 255浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《采取否定前瞻替代方案》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

我想知道是否有任何方法可以正则表达式匹配包含 qcc 但后面没有 -c 的字符串?例如以下两个将匹配:

  1. sdfsd/sdfs/d qcc -lang-c++ -Vgcc_ntoaarch64le -shared -o /dfgdfg/dfg/dfg/d -Wl -Wl,--gc-sections /fgdfgdfg/dfgdfgd/fdgd
  2. qcc -lang-c++ -Vgcc_ntoaarch64le -shared -o /dfgdfg/dfg/dfg/d -Wl -Wl,--gc-sections /fgdfgdfg/dfgdfgd/fdgd

但以下内容不会:

/sdfsd/sdf/sd/fs/df/dsfds/ qcc -lang-c -Vgcc_ntoaarch64le -c -o /sdfsd/dfsdfsd/sdfsd -Wall -fmessage-length=0 -Wformat-security -g -Os - D_FORTIFY_SOURCE=2 -Wno-error=format-security -DFORD_SECTION -DFNV2LOG_DEBUG -std=gnu11 dir.c


解决方案


与这样的选项字符串匹配永远不会真正强大,但如果您知道可能的输入字符串(即知道选项的顺序和/或选项永远不会合并),那么它应该相当简单。不确定我是否会费心使用正则表达式。你可以用类似的东西来做到这一点:

if strings.Contains(s, "qcc") && !strings.Contains(s, " -c ") { do something }

然后,您不必担心选项的顺序,尽管您确实需要知道选项 -c 始终以某种方式呈现(例如,周围有空格)。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《采取否定前瞻替代方案》文章吧,也可关注golang学习网公众号了解相关技术文章。

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