7

そのため、非常に長い文字列があり、複数の一致を処理したいと考えています。を使用して最初の試合の最初の位置しか取得できないようですregexpr。同じ文字列内で複数の位置 (より多くの一致) を取得するにはどうすればよいですか?

HTMLソースコードで特定の文字列を探しています。オークションのタイトル (html タグの間)。それは見つけるのが難しいことを証明しています:

これまでのところ、私はこれを使用しています:

locationstart <- gregexpr("<span class=\"location-name\">", URL)[[1]]+28
locationend <- regexpr("<", substring(URL, locationstart[1], locationend[1] + 100))
substring(URL, locationstart[1], locationstart[1] + locationend - 2)

つまり、タイトルの前の部分を探して、その場所をキャプチャし、そこからタイトルが終了したことを示す「<」を探します。より具体的な提案をお待ちしています。

4

2 に答える 2

10

を使用gregexprすると、複数の一致が可能になります。

> x <- c("only one match", "match1 and match2", "none here")
> m <- gregexpr("match[0-9]*", x)
> m
[[1]]
[1] 10
attr(,"match.length")
[1] 5
attr(,"useBytes")
[1] TRUE

[[2]]
[1]  1 12
attr(,"match.length")
[1] 6 6
attr(,"useBytes")
[1] TRUE

[[3]]
[1] -1
attr(,"match.length")
[1] -1
attr(,"useBytes")
[1] TRUE

一致を抽出したい場合は、regmatchesそれを行うために使用できます。

> regmatches(x, m)
[[1]]
[1] "match"

[[2]]
[1] "match1" "match2"

[[3]]
character(0)
于 2013-05-06T15:32:56.173 に答える