是否有人知道使用哪个正则表达式从R中的此字符stddata__2015_02_04
中提取此字符"<li><a href=\"stddata__2015_02_04/\"> stddata__2015_02_04/</a></li>"
?您可以假设乞讨stddata__201
已知,并且只有结尾会不时发生变化。
答案 0 :(得分:3)
如果输入为:
x <- "<li><a href=\"stddata__2015_02_04/\"> stddata__2015_02_04/</a></li>"
然后使用sub
:
sub(".*(stddata__201[_0-9]+).*", "\\1", x)
,并提供:
[1] "stddata__2015_02_04"
以下是正则表达式的可视化:
.*(stddata__201[_0-9]+).*
答案 1 :(得分:2)
我倾向于同意其他海报,正则表达不是最好的方法。但是,如果你真的想用Regex做这个,那么就这样了。
(?<=>\s)([^<>\/])+ # Works in php and python, and most other languages
答案 2 :(得分:1)
> library("stringr")
> str_extract("<li><a href=\"stddata__2015_02_04/\"> stddata__2015_02_04/</a></li>",
+ "stddata__201[0-9]_[0-9]{2}_[0-9]{2}")
[1] "stddata__2015_02_04"
首选解决方案不是正则表达式...
> library("rvest")
> "<li><a href=\"stddata__2015_02_04/\"> stddata__2015_02_04/</a></li>" %>%
+ html() %>%
+ html_text()
[1] " stddata__2015_02_04/"