Извините, если это дубликат .. это мне не ясно из того, что уже доступно на SO, как выполнить эту конкретную задачу ..Как извлечь строку, что и соответствует определённому шаблону и лежит между двумя другими строками
Моя цель - найти имя файла в zip-файле внутри некоторого html-кода. Имя файла находится внутри блока <a href=...>
html, поэтому его легко найти.
Вот код, чтобы воспроизвести то, что я смотрю на:
# character vector with two strings from my html file
string.examples <-
c("ANES Time Series Cumulative Data File</b><br /><a href=\"../cdf/cdf.htm\"> Study Page</a> | <a href=\"../cdf/cdf_errata.htm\">Errata</a> | <a href=\"../data/cdf/anes_cdf.zip\" onClick=\"javascript: _gaq.push(['_trackPageview','/downloads/cdf-ascii']);\">Download ascii data files <img src=\"../../images/zip.jpg\" border=\"0\" width=\"23\" height=\"13\" /></a> | <a href=\"../data/cdf/anes_cdfpor.zip\" onClick=\"javascript: _gaq.push(['_trackPageview','/downloads/cdf-por']);\">Download .por file <img src=\"../../images/zip.jpg\" border=\"0\" width=\"23\" height=\"13\" /></a> | <a href=\"../data/cdf/anes_cdfdta.zip\" onClick=\"javascript: _gaq.push(['_trackPageview','/downloads/cdf-dta']);\">Download .dta file <img src=\"../../images/zip.jpg\" border=\"0\" width=\"23\" height=\"13\" /></a> | August 25, 2011 version </td></tr>",
"ANES 2012 Time Series Study</b><br /><a href=\"../anes_timeseries_2012/anes_timeseries_2012.htm\">Study Page</a> | <a href=\"../anes_timeseries_2012/anes_timeseries_2012_errata.htm\">Errata</a> | <a href=\"../data/anes_timeseries_2012/anes2012TS.zip\" onClick=\"javascript: _gaq.push(['_trackPageview','/downloads/2012TS-ascii']);\">Download ascii data files <img src=\"../../images/zip.jpg\" border=\"0\" width=\"23\" height=\"13\" /></a> | <a href=\"../data/anes_timeseries_2012/anes2012TS_sav.zip\" onClick=\"javascript: _gaq.push(['_trackPageview','/downloads/2012TS-sav']);\">Download .sav file</a> <a href=\"../data/anes_timeseries_2012/anes2012TS_sav.zip\"><img src=\"../../images/zip.jpg\" border=\"0\" width=\"23\" height=\"13\" /></a> | <a href=\"../data/anes_timeseries_2012/anes2012TS_dta.zip\" onClick=\"javascript: _gaq.push(['_trackPageview','/downloads/2012TS-dta']);\">Download .dta file <img src=\"../../images/zip.jpg\" border=\"0\" width=\"23\" height=\"13\" /></a> | July 1, 2013 version<br />"
)
Похоронен глубоко в первой строке, есть текст <a href=\"../data/cdf/anes_cdfdta.zip\"
и во второй строке, есть текст <a href=\"../data/anes_timeseries_2012/anes2012TS_dta.zip\"
Из них две строки, я хотел бы извлечь ../data/cdf/anes_cdfdta.zip
и ../data/anes_timeseries_2012/anes2012TS_dta.zip
, потому что они содержат текст dta.zip
и потому, что они начинаются с <a href=\"
, а затем заканчиваются \"
Я хочу кое-где:
x <- some.regex.function(string.examples)
производит символьный вектор длиной два с ..
> x
[1] "../data/cdf/anes_cdfdta.zip" "../data/anes_timeseries_2012/anes2012TS_dta.zip"
Все файлы имеют ДТА.почтовый индекс? –
'gsub (" (. * A href = \\\ ") (. * Dta \\. Zip) (. *) $", "\\ 2", string.examples) '? – Arun
@Arun dammit i am так что паршивые регулярные выражения .. можете ли вы поместить это как ответ, и я отметю его правильно? спасибо !!!!!!!!!!!!! –