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

  • sdfsd / sdfs / d qcc -lang-c ++ -Vgcc_ntoaarch64le -shared -o / dfgdfg / dfg / dfg / d -Wl -Wl,-gc-sections / fgdfgdfg / dfgdfgd / fdgli ojit_r
  • 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 = -Wno-error =格式安全-DFORD_SECTION -DFNV2LOG_DEBUG -std = gnu11 dir.c

    最佳答案

    Go regex(RE2)不支持断言,这会使这变得容易。

    因此,必须分别处理两个正则表达式条件:

  • gcc存在:/\bgcc\b/
  • -c不跟随下游:/\bgcc\b.+?\b-c\b/

  • 验证匹配逻辑为if #1 and not #2,然后成功。

    10-07 22:00