ack:在提供正则表达式时转义单引号

ack: Escape single quotes while providing regex

我正在使用 ack 来搜索包含在单引号或双引号中的所有宽度值。

例如:width="23"width='420'

RegEx Pal 确认 /width=("|')\d+/g 是该作业的正确正则表达式。然而,我发现很难提供这个正则表达式来确认。

<prompt>$ ack 'width=("|\')\d+' <--- 在正则表达式中转义 ',如 \' 没有帮助

<prompt>$ ack 'width=("|\\')\d+' <--- 这也没有。

有什么想法吗?

"width=['\"]\d+['\"]"

适合我。方括号定义了一组字符,其中包含 '(单独)和 \"(由于周围的双引号而被留空)。

它也适用于 grep,但您需要 -P 选项,因为 \d+ 不是标准 grep 正则表达式的一部分。