首页 > 解决方案 > ack:在提供正则表达式时转义单引号

问题描述

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

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

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

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

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

有任何想法吗?

标签: regexunixpcreack

解决方案


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

为我工作。方括号定义了一组包含(单独')和\"(因为周围的双引号而被隔开)的字符。

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


推荐阅读