替换特定HTML元素/标记中字符的所有实例
Adobe Dreamweaver的搜索和替换功能将其范围限制为“仅在xxxx HTML标记内” 我想用MacOSX的命令行来做这件事(所以我会做它附带的任何事情)替换特定HTML元素/标记中字符的所有实例,html,regex,macos,dreamweaver,replace,Html,Regex,Macos,Dreamweaver,Replace,Adobe Dreamweaver的搜索和替换功能将其范围限制为“仅在xxxx HTML标记内” 我想用MacOSX的命令行来做这件事(所以我会做它附带的任何事情) 例如,如何使用命令行删除所有中字符“a”的所有实例?您可以使用unix的sed命令(在mac上也可用)。 e、 g $cat foo.xml 阿克斯扎布卡 aa A. $cat foo.xml | sed's/a*\([^a]*\)a*\([^a]*\)a*/\1\2/g' xyzbc (foo.xml是一个包含常见测试用例的示例
例如,如何使用命令行删除所有
中字符“a”的所有实例?您可以使用unix的sed命令(在mac上也可用)。
e、 g
$cat foo.xml
阿克斯扎布卡
aa
A.
$cat foo.xml | sed's/a*\([^a]*\)a*\([^a]*\)a*/\1\2/g'
xyzbc
(foo.xml是一个包含常见测试用例的示例输入)您可以使用unix的sed命令(它也可以在mac上使用)。 e、 g
$cat foo.xml
阿克斯扎布卡
aa
A.
$cat foo.xml | sed's/a*\([^a]*\)a*\([^a]*\)a*/\1\2/g'
xyzbc
(foo.xml是一个包含常见测试用例的示例输入)这不是一个简单的线性输入,但是--
perl-ni-e'
$/=未定义$x=$y=“”;
而($x=~m^(.*)(.*)(.*)(.*)$#si){
$x=$4;$y.=$1;$c=$3;
($b=$2)=~s/a/(其他东西)/g;
$y.=$b.$c;
}打印$y$x;
'filename.html
这不是一句简单的话,但是--
perl-ni-e'
$/=未定义$x=$y=“”;
而($x=~m^(.*)(.*)(.*)(.*)$#si){
$x=$4;$y.=$1;$c=$3;
($b=$2)=~s/a/(其他东西)/g;
$y.=$b.$c;
}打印$y$x;
'filename.html
您能否提供一个具体的示例,说明您试图从/更改为什么?例如,删除hy-pen-s to e-lim-i-nate lot-s中的所有连字符,但不删除任何其他标记中的连字符。您能否提供一个具体的示例,说明您试图从/更改为什么?例如,删除hy-pen-s to e-lim-i-nate的lot-s中的所有连字符实例,但不要删除任何其他标记中的连字符。我必须补充一点,除非您在编辑代码时这样做,否则使用正则表达式处理xml/html通常是个坏主意。请看明白为什么。这不会只是在开始时删除一些A的确切模式,有些在中间,有些在结尾(确切地说是3个集合,不多,不多,A)吗?不知道你的意思。我给出的示例xml和示例运行显示了不同的情况。不管怎么说,重点是向您展示如何使用sed实现它。您可以根据特定的用例调整正则表达式。我必须补充一点,除非您在编辑代码时这样做,否则使用正则表达式处理xml/html通常是个坏主意。请看明白为什么。这不会只是在开始时删除一些A的确切模式,有些在中间,有些在结尾(确切地说是3个集合,不多,不多,A)吗?不知道你的意思。我给出的示例xml和示例运行显示了不同的情况。不管怎么说,重点是向您展示如何使用sed实现它。您可以根据特定的用例调整正则表达式。
$ cat foo.xml
<h1>axyzabca</h1>
<a href="foo.com">abc</a>
<h1>aa</h1>
<h1>a</h1>
<h1></h1>
$ cat foo.xml | sed 's/<h1>a*\([^a]*\)a*\([^a]*\)a*<\/h1>/<h1>\1\2<\/h1>/g'
<h1>xyzbc</h1>
<a href="foo.com">abc</a>
<h1></h1>
<h1></h1>
<h1></h1>
perl -ni -e '
$/ = undef; $x = <>; $y = "";
while ($x =~ m#^(.*?<h1>)(.*?)(</h1>)(.*)$#si) {
$x = $4; $y .= $1; $c = $3;
($b = $2) =~ s/a/(something else)/g;
$y .= $b . $c;
} print $y . $x;
' filename.html