[英]extract string with Regular expression
它只是HTML代码的一小部分,我希望用<?包装所有代码。 和? >。
简单地说,我只想提取下面给出的字符串。 例如,
var code='<td>Total Response Sets</td><? if(byExposure) { ?><td style="text-align:right;padding-right:10px"><?= question.totals["control"] ?></td>';
// how to extract the required code with regular expression ?
使用npinti后,我使用下面的代码,它给出了我在<%&%>之间的第一个表达式。 但是,我如何获得下面几个表达式?
var patt=/<\?\s*(.*?)\s*\?>/g;
var result=patt.exec(code);
console.log(result[1]); // o/p -> if(byExposure) {
(有关详细信息,代码用于下划线中的模板化.js)
这个正则表达式:
<\?\s*(.*?)\s*\?>
应该符合你的需要。 从给定的字符串中匹配以下内容:
<? if(byExposure) { ?>
<?= question.totals["control"] ?>
然后,您可以使用组提取标记之间的内容。 检查此之前的SO线程,看看它是如何做。
这应该完成工作:
var code='<td>Total Response Sets</td><? if(byExposure) { ?><td style="text-align:right;padding-right:10px"><?= question.totals["control"] ?></td>';
var patt=/<\?\s*(.*?)\s*\?>/g;
var result=patt.exec(code);
while (result != null) {
alert(result[1]);
result = patt.exec(code);
}
而不是exec
,使用match
方法:
res = code.match(patt);
输出:
["<? if(byExposure) { ?>", "<?= question.totals["control"] ?>"]
我不确定你想要提取什么。 你只需要<?之间的第一个字符串吗? 然后你可以使用:
(/<\?(.*?)\?>/.exec( code ))[1]
这将返回if(byExposure){ 。 如果你想匹配第一个<? 和最后?>,然后你可以使用:
(/<\?(.*?)\?>/.exec( code ))[1]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.