当前位置: > > > > 采取否定前瞻替代方案
来源:stackoverflow
2024-04-24 17:18:34
0浏览
收藏
知识点掌握了,还需要不断练习才能熟练运用。下面给大家带来一个Golang开发实战,手把手教大家学习《采取否定前瞻替代方案》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!
问题内容
我想知道是否有任何方法可以正则表达式匹配包含 qcc 但后面没有 -c 的字符串?例如以下两个将匹配:
- sdfsd/sdfs/d qcc -lang-c++ -Vgcc_ntoaarch64le -shared -o /dfgdfg/dfg/dfg/d -Wl -Wl,–gc-sections /fgdfgdfg/dfgdfgd/fdgd
- 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 始终以某种方式呈现(例如,周围有空格)。
文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《采取否定前瞻替代方案》文章吧,也可关注公众号了解相关技术文章。