regex 正则表达式查找特定单词模式后的字符串

s1ag04yj  于 2023-11-20  发布在  其他
关注(0)|答案(4)|浏览(121)

如何在匹配特定的单词模式后使用Regex获取字符串?

some html code </p>\n\n<p> </p>\n\n<p><img alt=\"\" height=\"397\" src=\"https://actual-image-url\" width=\"537\"></img> </p>\n\n<p><br> <br>some html code

字符串
在这里,我想找到imgage源URL,这意味着给予我src=值在<img标记。所以我想要的字符串是“https://actual-image-url”
感谢任何答案,谢谢。
我试过了:

/<img\s.*\Ksrc=\\"\K.*\\"\s


它与一些在线工具一起工作。但是我的软件(DataWeave)不喜欢它,它抛出了\K的错误作为不支持的字符。

zbq4xfa0

zbq4xfa01#

固定正则表达式:

<img[^>]+src="([^"]+)"

字符串

vshtjzan

vshtjzan2#

尝试以下 * 捕获模式 *。
该值将在capture-group 2中。

<img\s.+?src=.*?(['\"])(.*?)\\\1

字符串

  • <img\s,匹配 img 开始标记
  • .+?src=,匹配所有字符,直到 “src="
  • .*?(['\"]),匹配任何字符,并捕获'"
  • (.*?)\\\1,捕获匹配'"的任何字符。
xe55xuns

xe55xuns3#

下面的代码工作,

%dw 2.0
output application/json
---
payload.message scan(/<img [^>]*src=\"([^"]+)/) map $[-1]

字符串

jgovgodb

jgovgodb4#

您似乎试图使用DataWeave可能不支持的其他实现中的正则表达式特性。
假设您希望它用于您的确切输入,其中包括额外的引号转义:

%dw 2.0
output application/json
---
(payload scan(/<img[^>]*src=\"([^"]+)/)) map $[1]

字符串
注意,match()需要匹配整个输入字符串,索引0是完整的字符串。使用范围选择器返回索引为1或更大的项目将返回源URL。
输出(对于您的精确输入):

[
  "https://actual-image-url\\"
]

相关问题