Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换特定HTML元素/标记中字符的所有实例_Html_Regex_Macos_Dreamweaver_Replace - Fatal编程技术网

替换特定HTML元素/标记中字符的所有实例

替换特定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是一个包含常见测试用例的示例

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是一个包含常见测试用例的示例输入)

您可以使用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