简单的问题,但我无法解决。
我有以下 perl 正则表达式:
echo ... | grep -P "(?i)(v(ersion)?)\s?(?!0)\d(\.|,)\d{1,}"
这应该匹配每个描述某事物版本的字符串(例如V2,0
or version 1.2
)。但是当版本以V0...
. 但是,当我执行此操作时,会出现错误-bash: !0: event not found
,因为!<string>
用于搜索命令历史记录并执行最新命中。
这基本上打破了我的 perl 正则表达式。如何避免 shell 将其解释为快捷方式?
使用单引号而不是双引号来保护您的正则表达式免受 shell 的影响。