在javascript中使用regex表达式进行替换
replacement using regex expression in javascript
我在java中有一个HTML字符串,它在某些属性中包含数据
就是一个例子
<img class="show-grid" src="http://localhost:4502/content/dam/original" alt="4.7-products.jpg">
现在,我遇到的问题是,我想在src属性(这里以http开头,以original结尾的字符串(中的字符串末尾附加一些字符串,src属性是url。
我只知道:
- 字符串总是以
http
开头
有些事情我不知道
- 字符串的结束顺序是什么
- 在这里的target属性之后可能还有另一个属性(在本例中,target属性是src(
我尝试了以下正则表达式:
target.search(/('bhttp.*'"'b)/gi)
这个想法是找到所有字符串:
- 其以
http
开始,以"
结束
所以,我想这个正则表达式会给我以下字符串:
http://localhost:4502/content/dam/original"
但相反,它给了我:
http://localhost:4502/content/dam/original" alt="
知道它为什么超越当前单词吗?是因为它在单词之间寻找空格,然后当它在空格分隔的新词中找到"
时,它就停止了搜索。
如何修改target.search(/('bhttp.*'"'b)/gi)
以获得所需的结果?
只需拆分并添加回您需要的具有正面环视的字符
String string = "http://yourtestinthstsdfasdfasdfhttp://moreteststrings";
String[] parts = string.split("(?=http)");
String part1 = parts[0]; // is http://yourtestinthstsdfasdfasdf
String part2 = parts[1]; // is http://moreteststrings
/http.*(?='"'s)/gi
将匹配http中的任何内容,直到结束引号后面跟着空白。它使用(?=(,称为正向前瞻。
另一种方法是,如果您只想匹配src属性内的任何内容,而不需要推测是否存在http字符串:src="([^"]*)
。
你可以玩它https://regex101.com/r/rH0yZ2/3.
您的正则表达式是"贪婪的"(请参阅:
/('bhttp.*'"'b)/
修改为/('bhttp.*?'"'b)/
。
编辑:这仍然不起作用,请参阅下方的消息
该正则表达式使用默认的贪婪修饰符。这意味着它正在搜索尽可能多的*
(任何字符(。相反,您要寻找的是*?
(零或更多,非贪婪(修饰符,它可以改变这种行为。
您的新正则表达式搜索将如下所示:
target.search(/http.*?'"/gi)
相关文章:
- 如何用正则表达式替换特定的JavaScript注释
- 如何在javascript中使用string.replace.将匹配字符串开头的两个不同表达式替换为null
- 用特定的javascript正则表达式替换每个单词
- 如何用JavaScript正则表达式替换href中的所有内容
- 使用 JavaScript 中的正则表达式替换大文本中两个字符之间的每个出现的字符串
- Javascript 正则表达式替换为转义的反斜杠
- 使用 JavaScript 正则表达式替换文本中的类似字符串
- 在特殊标记之外使用 JavaScript 正则表达式替换
- 如何使用 javascript 在正则表达式替换中表示大括号
- 在字符串 JavaScript 中使用正则表达式替换
- 用Javascript正则表达式替换iframe到可点击的YouTube链接
- JS正则表达式替换编号
- 正则表达式:替换javascript中的字符串
- Javascript正则表达式替换以转换文本
- 正则表达式替换为插入符号
- 在javascript中用正则表达式替换空格
- 用正则表达式替换javascript
- 使用 JavaScript 正则表达式替换和递增整数值
- JS 正则表达式:替换字符串中的所有数字
- 正则表达式替换