[英]Using Regex to remove html elements and leave the content
可以說我有以下html
<b>Item 1</b> Text <br>
<b>Item 2</b> Text <br>
<b>Item 3</b> Text <br>
<p><font color="#000000" face="Arial, Helvetica, sans-serif"><b>Item 4:</b></font></p>
<p><font color="#000000" face="Arial, Helvetica, sans-serif">Detailed Description</font></p>
並正在使用以下正則表達式捕獲數據(Item 1:.*?<br>)/gi
,該數據返回<b>Item 1</b> Text <br>
如何刪除或刪除<b>,</b> and <br>
留給
項目1文字
我一直在嘗試理解此代碼<(\\w+)[^>]*>.*<\\/\\1>
,但是到目前為止還沒有運氣。 我在這里看到的所有示例似乎都需要一個id類,而我的html卻沒有,因此我在獲取這些示例以適應我的問題方面有些困惑。
試試這個reg ex: <[^>]*>
這將刪除所有帶有或不帶有屬性和結束標記的html。
這應該可以解決問題:
var matches = stringToTest.match(/(Item \d+.*?<br\/?>)/gi);
for (var i = 0; i < matches.length; i++) {
matches[i] = matches[i].replace(/<[^>]+>/g, '');
}
alert(matches);
如果您有jQuery:
alert(
$.map(stringToTest.match(/(Item \d+.*?<br\/?>)/gi), function(v) { return v.replace(/<[^>]+>/g, '') })
);
此正則表達式將匹配b和br標簽:
</?br?\s*/?>
要在Javascript中使用它,您需要編寫如下代碼:
result = subject.replace(/<\/?br?\s*\/?>/img, "");
所有匹配的標簽將替換為空字符串。
以我的經驗,最好用空格替換br標簽,並用空字符串替換普通的內聯標簽。 如果這是您要執行的操作,則此下一個正則表達式僅匹配b個標記:
</?b\s*/?>
並且此僅匹配br標簽:
</?br\s*/?>
在正則表達式中,()之間的內容表示捕獲組,以后可以將其作為變量(\\ 1 \\ 2 \\ 3等)或有時$ 1 $ 2 $ 3進行訪問。 因此,只需使用它們即可捕獲所需的文本。
我認為此正則表達式將為您工作:
<b>(Item \d+)</b>(.*?)<br>
詳細地,該表達式表示:
(Item \\d+)
:格式為“項目[至少1位數字] ”的任何字符串 (.*?)
:任意一組字符, ?
最小化序列中的字符數。 因此,現在在<b>Item 5434</b>hel34lo 0345 345<br>
,正則表達式位於您捕獲的組之上:
\\1
=項目5434 \\2
= hel34lo 0345 345 我從來沒有用JavaScript編程過,但是更准確地說,這段代碼可能有效:
var myString = "<b>Item 5434</b>hel34lo 0345 345<br>";
var myRegexp = /<b>(Item \d+)</b>(.*?)<br>/g;
var match = myRegexp.exec(myString);
alert(match[1]); // Item 5434
alert(match[2]); // hel34lo 0345 345
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.