首页 > 解决方案 > RE 仅匹配不以 value=" 开头的字符串

问题描述

我正在尝试编写一个正则表达式来捕获不以字符串“ value="”开头的模式。已经用负前瞻测试,但不成功。想知道 RE 是否有可能......欢迎任何帮助。

表达式是^(?!value=")([M|A|S|R]+\d+[M|S|A|R|a|b|c|d|e|f|x|\d|\s]+)\b

start

this value this should be captured 
 "M533x539S18520507x461S18528469x461S2e00c512x486S2e014467x487S2fc04492x528"

but this last one not 
 value="M519x515S11520482x485S26506504x500"

end

https://regex101.com/r/ugARR0/1

<div style=" height:100%" contenteditable="true"  name="target_0_div" cols="40" rows="3" tabindex="100" class="translation-editor form-control teste" id="id_eedbdc1996c09949_0" lang="sgn-BR" dir="ltr" abc="3" maxlength="100"> M533x539S18520507x461S18528469x461S2e00c512x486S2e014467x487S2fc04492x528 </div>

<input type="hidden" id="target_0" name="target_0" value="M533x539S18520507x461S18528469x461S2e00c512x486S2e014467x487S2fc04492x528">

<script>

https://regex101.com/r/cVWlQp/5

谢谢

标签: javascriptregex

解决方案


你可以稍微简化一下:

^"[MASR]+[\d]+[MSAa-fx\d]+"

https://regex101.com/r/cVWlQp/2

由于您是从字符串的开头使用 开始的^,因此您可以忽略以引用值以外的其他内容开头的字符串。

如果您尝试获取引号内的值,则可以将该部分包含在括号中:

^"([MASR]+[\d]+[MSAa-fx\d]+)"

更新您的问题后...

如果您尝试匹配 HTML 内容中的字符串而不获取 HTML 属性中的值,您可以简单地使用:

[\s|>]+([MASR]+[\d]+[MSAa-fx\d]+)

此正则表达式查找以结束符或空格开头的匹配项,>并返回第一个“组”中的字符串。

https://regex101.com/r/GNbWfK/1


推荐阅读