簡體   English   中英

查找包含HTML的字符串中的所有匹配項

[英]Find all occurrences in string containing HTML

我有一個包含HTML的字符串,例如:

s <- "...<span class=\"pull-right\">170 cm</span>...
<span class=\"pull-right\">29</span>...
<span class=\"pull-right\">06/24/1987</span>..."

其中...表示之間還有其他HTML標記。 我想提取></span>之間的信息,可以

  • 僅數字
  • 數字和字符(大寫或小寫或兼而有之)
  • 格式日期mm/dd/yyyy

我為正則表達式想到了這樣的東西:

">[0-9/]*[a-z ]*[A-Z]*</span>"

這個對嗎? 如何提取感興趣的值? 也就是說,給定s

170 cm
29
06/24/1987

您最好去一個HTML解析器。 但是,如果您需要一種基於正則表達式的快速且骯臟的解決方案,請使用環視方法在某些開頭( (?<=>)為前一個> )和結尾( (?=</span>)為尾隨</span>之間提取模式)模式:

(?<=>)[0-9/A-Za-z ]*(?=</span>)

請注意, 0-9/azAZ組合在一類中,否則1 Gb類的字符串將不匹配(您的原始正則表達式要求大寫字母后跟小寫字母)。

可以使用perl=TRUE環視:

m <- gregexpr("(?<=>)[0-9A-Za-z /]*(?=</span>)", s, perl=TRUE)
regmatches(s, m)

演示: https : //ideone.com/yvXIuP

這是一個匹配的正則表達式

170厘米

29

1987年6月24日

(\d{2}\/\d{2}\/\d{4})|(\d+ [A-Za-z]+)|(\d+)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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