程序开发 · 2023年12月29日

采取否定前瞻替代方案

当前位置: > > > > 采取否定前瞻替代方案

来源:stackoverflow
2024-04-24 17:18:34
0浏览
收藏

知识点掌握了,还需要不断练习才能熟练运用。下面给大家带来一个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 始终以某种方式呈现(例如,周围有空格)。

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