我有2000多个<img>标签,我想替换每个标签的alt文本。备选案文如下:
我想要一种用空格(‘)替换所有'+’的快速方法,因此我使用regex来修复这个问题。到目前为止我已经尝试过:
查找什么: alt="(\D+)[+](\D+)[+*](\D*)[+*](\D*)[+*](\D*)[+*](\D*)[+*](\D*)[+*](\D*)"\s
替换为: alt="\1 \2 \3 \4 \5 \6 \7 \8"
我知道我做错了什么,请帮帮忙。
完整的字符串是:
<img border="0" height="111" src="https://1.bp.blogspot.com/-WL5_jMT96p4/U8ILVU9D-mI/AAAAAAAAGeI/rP_RJccbhj8/s1600/hot+dry+sun+az.jpg" alt="hot+dry+sun+az" width="200" />
发布于 2017-08-29 02:06:25
为了演示,我已经测试了这一点,重复按下Replace All按钮就可以了。首先,按Regular expression单选按钮,然后:
Find what: (alt=\"[^+"]*?)\+([^\"]*?")
Replace with: \1 \2这当然不是傻瓜,但它应该工作,只要你没有病理数据。
注意到:我的第一个版本有一个错误,因为它会将alt="hot+dry+sun+az" width="200+200"更改为alt="hot+dry+sun+az" width="200 200",这是为什么不应该使用regex来处理alt="hot+dry+sun+az" width="200 200"的一个很好的例子。我认为这个任务可能可以在几行JavaScript中完成,没有像上面那样被绊倒的危险,但这是另一个问题!
注释2:我的第二个版本也有Zalgoed。
https://stackoverflow.com/questions/45929560
复制相似问题