簡體   English   中英

在字符串開頭而不是結尾處刪除模式

[英]Remove Pattern at Beginning of String but not at End

我有學校列表,但其中一些排名。 我想刪除學校的排名(在字符串的開頭)。 當學校排名時,它看起來像這樣:

(3) Trinity

但是,有些學校的名稱末尾帶有括號,例如:

Concordia (Minn.)

所以我不想刪除括號,如果它在字符串的末尾。

我不太確定該怎么做,但是我假設我需要使用正則表達式。

獲取我的數據:

library(dplyr)
library(rvest)
library(purrr)

page_num <- seq(4, 16, by = 1) %>%
  paste("/", sep = "") %>%
  {page_num[-10]}

site <- paste("http://www.uscho.com/scoreboard/division-iii 
               men/20172018/list-", page_num, sep = "")

get_opponent <- function(x) {

  read_html(site[x]) %>%
    html_nodes("td:nth-child(2)") %>%
    html_text()

}

opponents <- map(seq(1, length(page_num)), get_opponent) %>%
  unlist() %>%
  tibble()

opponents

我們可以在這里使用sub ,使用以下模式^

^\s*\(\d+\)\s*(.*)

這將匹配一個前導的行列,前后都有可能的空格,然后匹配並捕獲字符串的其余部分。 然后,將其替換為剩余的字符串。

x <- "(3) Trinity"
result <- sub("^\\s*\\(\\d+\\)\\s*(.*)", "\\1", x)
result

[1] "Trinity"

演示

sub另一個選擇是

x <- c("(3) Trinity", "Concordia (Minn.)")
sub("^\\(.*\\)", "", x)

#[1] " Trinity"          "Concordia (Minn.)"

替換字符串開頭圓括號內的所有內容。

暫無
暫無

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

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