我正在尝试使用 gsub 从字符串中删除字符和特殊字符,我已经删除了大部分字符,但仍在处理反斜杠和引号。我只是想获取位置和道路,但由于 \ 和引号,似乎无法获取,我知道它们是作为特殊字符处理的,所以我需要使用反斜杠来表示这一点,但似乎无法获取它正确。
mystring = '"<xml><timestamp>1709060455</timestamp><list id=\"2024\" name=\"London,UK M25\" surface=\"?\" time_dif=\"18000\"'
my attempt
aa = gsub(".+name=\"(.+) .+", "\\1", mystring)
result
"London,UK M25\" surface=\"?\""
What im trying to get
London,UK M25
我想我喜欢 R 的“原始字符串”。此外,我们不需要
gsub
,一件事 sub
也可以工作。
sub(r"{.+name="([^"]+)".*}", "\\1", mystring)
[1] "London,UK M25"
“原始字符串”允许具有“正常外观”的反斜杠、嵌入引号等,只要字符串以
r"(
开头并以 )"
结尾。 (
和 )
也可以是 [
/]
和 {
/}
,这对我们来说是有利的,因为我们也在模式中使用了正则表达式括号。
sub(r"{.+name="([^"]+)".*}", "\\1", mystring)
# [1] "London,UK M25"
sub(r"[.+name="([^"]+)".*]", "\\1", mystring)
# [1] "London,UK M25"