簡體   English   中英

使用正則表達式提取字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM