用重复的模式替换一行正则表达式
Regex replacement one a single line with a repetitive pattern
假设我有以下单行代码:
<script src="common/scripts/vendor.0.js"></script><script src="common/scripts/all.0.js"></script><script src="common/scripts/environment.0.js"></script><script src="vendor/angular-mocks/angular-mocks.js"></script><script src="common/scripts/another.0.js">
我基本上想要匹配并替换下面的字符串:
<script src="vendor/angular-mocks/angular-mocks.js"></script>
要匹配的关键模式是指向angular-mocks.js
文件的<script>
标记,路径可以在将来更改。但更换必须为整个<script>
标签。
此外,所有文件中的0
实际上将包含Jenkins的构建号,以防您了解相关信息。
谁能帮我用正则表达式做这个?
<script[^>]+?angular-mocks'.js"><'/script>
与Qeole的答案非常相似,但与实现无关;您可能需要额外的转义。如果你正在使用JS、PCRE或PY,这里有一个regex101的链接。
编辑
如果不能保证src
是标签内的最后一个属性,则使用:
<script[^>]+?angular-mocks'.js"[^>]*><'/script>
regex101
对于sed
命令,您可以使用:
sed 's=<script [^>]*angular-mocks.js"></script>=='
<<< '<script src="common/scripts/vendor.0.js"></script><script src="common/scripts/all.0.js"></script><script src="common/scripts/environment.0.js"></script><script src="vendor/angular-mocks/angular-mocks.js"></script><script src="common/scripts/another.0.js">'
(匹配<script
,然后匹配不包含>
的字符串,然后匹配angular-mocks.js></script>
并删除整个内容)
相关文章:
- java.net和javascript之间正则表达式的差异
- Grunt匹配正则表达式
- 不同浏览器中的空白字符正则表达式行为
- 正则表达式在字符串中找到base64
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 调用正则表达式匹配的函数
- 使用正则表达式评估电子邮件地址时出现性能问题
- Javascript 正则表达式 : ^[^/s/]+[a-z]{1,}[0-9]*[-_]*[^/][
- JavaScript正则表达式文本与RegExp对象
- Javascript-在一行中评估多个正则表达式
- 正则表达式在同一行上有多个匹配项
- 使用正则表达式在同一行中匹配未关闭的字体标签
- 我如何匹配一个正则表达式在一行javascript
- 正则表达式:不是一行的开头
- 我的正则表达式只需一行输入即可正常工作,但不要't有两个或两个以上.
- 如何在一行的开头或结尾匹配正则表达式?
- 用重复的模式替换一行正则表达式
- 用于检测一行中重复的数字的正则表达式
- 需要一个正则表达式javascript来读取每一行,检查特定字符串,并在匹配时显示整行
- 正则表达式:检查一行是否不以单词结尾时出现问题