我有一个.html的混淆类名称,类似这样的class=“cd hk aw hs vu me hr”.我只想替换一个特定的类名称(例如“hk”)在整个html中.我需要一个正则表达式,可以帮助我实现这一点.
我发现了这样的表达方式:第一个月
所以我尝试了以下方法:(?<=class="[^"]*)(.*hk.*)(?=")
,但它也返回同一主体中的所有类。Result here
它应该只返回hk单词
任何帮助都是感激的。
我有一个.html的混淆类名称,类似这样的class=“cd hk aw hs vu me hr”.我只想替换一个特定的类名称(例如“hk”)在整个html中.我需要一个正则表达式,可以帮助我实现这一点.
我发现了这样的表达方式:第一个月
所以我尝试了以下方法:(?<=class="[^"]*)(.*hk.*)(?=")
,但它也返回同一主体中的所有类。Result here
它应该只返回hk单词
任何帮助都是感激的。
1条答案
按热度按时间bybem2ql1#
强制性外科医生一般警告:you shouldn't use regex to parse HTML.
在这种非常有限的情况下,您 * 可能 * 使用
并将其替换为
\1whatever\2
。然后"hk"变为"whatever",前提是它位于HTML标记内的类中。\b说明符将防止"ohka"匹配,\s确保"class ="和"class ="被同等对待。您需要一个多行修饰符您可以尝试使用https://regex101.com。
更新(澄清):
事实上,* 将 * 找到
<body class="ab hk cd" style="x">
并匹配和替换序列<body class="ab hk cd"
。注意,在正则表达式中,第一部分--"hk"之前的部分--是圆括号,之后的部分也是圆括号。"诀窍"在于替换公式,我在其中指定了"\1whatever \2"(在某些库中,它可以是$1whatever $2、${1} whatever ${2}或{$1} whatever {$2}等等),意思是 * 第一个括号中的组的内容进入\1 *,等等。
因此,这三个组将是:
而替换的
\1whatever\2
将变为这就是想要的输出。用自己替换第一组和第三组感觉不必要和浪费,但我不知道有其他方法可以做到这一点-正则表达式替换需要重新生成 * 整个 * 匹配,而"额外"的部分需要正确地框住匹配本身。
(You例如,可以使用这种语法来交换围绕透视表的两个字符串)。