正则表达式匹配字符串并避免间隔

时间:2014-01-10 00:29:23

标签: javascript php jquery regex text-parsing

我在javascript / jquery和 我有这个STRING: (请注意,这是一个包含Html的STRING,所以我不能只做$('。myClass')。无论如何:))

<div class="myClass"> asd class 2 a a a a a a </div>   class
<div class="myClass"> class asd df </div>
<div class="myClass"> class </div>
<div class="myClass"> class sdf class aa </div>
<div class="myClass">class sdf class aa </div>

我想创建一个只匹配某个单词而不是html标签中的正则表达式。 例如,如果我的单词是“class”,我想匹配这个: ([]附件是匹配的) “

<div class="myClass"> asd [class] 2 a a a a a a </div>   class
<div class="myClass"> [class] asd df </div>
<div class="myClass"> [class] </div>
<div class="myClass"> [class] sdf [class] aa </div>
<div class="myClass">[class] sdf [class] aa </div>

” 而不是这个: ([]附件是匹配的) “

<div [class]="myClass"> asd [class] 2 a a a a a a </div>   class
<div [class]="myClass"> [class] asd df </div>
<div [class]="myClass"> [class] </div>
<div [class]="myClass"> [class] sdf [class] aa </div>
<div [class]="myClass">[class] sdf [class] aa </div>

” 有人可以帮帮我吗? :)

2 个答案:

答案 0 :(得分:0)

我认为这就是您所需要的:

$html = <<< EOF
<div [class]="myClass"> asd [class] 2 a a a a a a </div>   class
<div [class]="myClass"> [class] asd df </div>
<div [class]="myClass"> [class2] </div>
<div [class]="myClass"> [class2] sdf [class] aa </div>
<div [class]="myClass">[class] sdf [class] aa </div>
EOF;

preg_match_all('/(\[class\]|\[class2\])(?=[^>]*(<|$))/i', $html, $result, PREG_PATTERN_ORDER);
for ($i = 0; $i < count($result[1]); $i++) {
    echo $result[1][$i];
}

<强>输出:

[class][class][class2][class2][class][class][class]

LIVE DEMO

如果你只需要一个javascript正则表达式,你可以使用:

var myregexp = /(\[class\]|\[class2\])(?=[^>]*(<|$))/ig;
var match = myregexp.exec(subject);
while (match != null) {
    // matched text: match[0]
    // match start: match.index
    // capturing group n: match[n]
    match = myregexp.exec(subject);
}

答案 1 :(得分:0)

你可以试试这个:

$(document).ready(function() {
    $(".myClass").text(function () {
        return $(this).text().replace("class", "[class]"); 
    });
}); 

请参阅jsfiddle:http://jsfiddle.net/LPC6n/

相关问题