Regex sed正则表达式在solaris上失败

Regex sed正则表达式在solaris上失败,regex,sed,posix,solaris,Regex,Sed,Posix,Solaris,在Solaris 5.10下,为什么此regexp与tag=“12447”这样的行不匹配 (我注意到sed版本中没有实现-r)在严格的posix模式下,+符号不能用于表示某个东西的“一个或多个”。您可以改为使用{1,}的范围(当然是转义的): 请注意,您实际上并不需要--posix,我只是用它来禁用我版本的sed中的所有GNU扩展: echo 'tag="12447"' | sed "s/tag=\"[0-9]\{1,\}\"/emptytag/" emptytag 一个选项是使用gsed(关

在Solaris 5.10下,为什么此regexp与tag=“12447”这样的行不匹配


(我注意到sed版本中没有实现-r)

在严格的posix模式下,
+
符号不能用于表示某个东西的“一个或多个”。您可以改为使用
{1,}
的范围(当然是转义的):

请注意,您实际上并不需要
--posix
,我只是用它来禁用我版本的
sed
中的所有GNU扩展:

echo 'tag="12447"' | sed "s/tag=\"[0-9]\{1,\}\"/emptytag/"
emptytag

一个选项是使用gsed(关于不支持的选项-r)
echo 'tag="12447"' | sed --posix "s/tag=\"[0-9]\{1,\}\"/emptytag/"
emptytag
echo 'tag="12447"' | sed "s/tag=\"[0-9]\{1,\}\"/emptytag/"
emptytag