包含拉丁符号和西里尔符号的正则表达式
Regex containing both latin and cyrillic symbols
我有从 html_text()
得到的字符串
feel sore — болеть feel sore about — страдать; мучиться
但应该是这样的
feel sore — болеть
feelsore about — страдать; мучиться
问题是,rvest
不区分空格和换行符,但我只需要得到第一行“feel sore — болеть”。
我尝试使用 stringr::str_extract()
但失败了。我该怎么办?
UPD:好的,我发现有 html_text2()
但是否仍然可以使用正则表达式?
你可以使用两个否定字符类:
[^—]+
:匹配任何不是—
一次或多次 的字符
[^A-Za-z]+
:匹配任何不是一次或多次英文字母大写或小写字母的字符:
数据:
str <- c("feel sore — болеть feel sore about — страдать; мучиться",
"so long — разг. Пока!")
解决方案:
str_extract_all(str, "[^—]+—[^A-Za-z]+")
[[1]]
[1] "feel sore — болеть " "feel sore about — страдать; мучиться"
[[2]]
[1] "so long — разг. Пока!"
要去掉列表字符,使用unlist
;要摆脱尾随空格,请使用 trimws
.
我有从 html_text()
feel sore — болеть feel sore about — страдать; мучиться
但应该是这样的
feel sore — болеть
feelsore about — страдать; мучиться
问题是,rvest
不区分空格和换行符,但我只需要得到第一行“feel sore — болеть”。
我尝试使用 stringr::str_extract()
但失败了。我该怎么办?
UPD:好的,我发现有 html_text2()
但是否仍然可以使用正则表达式?
你可以使用两个否定字符类:
[^—]+
:匹配任何不是—
一次或多次 的字符
[^A-Za-z]+
:匹配任何不是一次或多次英文字母大写或小写字母的字符:
数据:
str <- c("feel sore — болеть feel sore about — страдать; мучиться",
"so long — разг. Пока!")
解决方案:
str_extract_all(str, "[^—]+—[^A-Za-z]+")
[[1]]
[1] "feel sore — болеть " "feel sore about — страдать; мучиться"
[[2]]
[1] "so long — разг. Пока!"
要去掉列表字符,使用unlist
;要摆脱尾随空格,请使用 trimws
.