我希望提取具有任意小数的数字(小数点两边至少各有一个数字),但是not模式后跟百分比。因此,我相信我需要一个负前瞻(这样它就可以看到数字后面是否有百分号)。
为了清楚起见,我想提取"123.123"
,但不想提取"123.123%"
我尝试了十几种语法安排,但找不到有效的一种。这成功地提取了小数模式。
c("123.123%", "123.123") %>% str_extract_all(., "\\d+\\.\\d+")
但我想调整它以仅返回第二个项目(因为第一个项目包含百分号。
我尝试过以下各种组合:
c("123.123%", "123.123") %>% str_extract_all(., "\\d+\\.\\d+(!?=%)")
c("123.123%", "123.123") %>% str_extract_all(., "\\d+\\.\\d+[!?%]")
c("123.123%", "123.123") %>% str_extract_all(., "\\d+\\.\\d+!?%")
c("123.123%", "123.123") %>% str_extract_all(., "\\d+\\.\\d+!?\\%")
c("123.123%", "123.123") %>% str_extract_all(., "\\d+\\.\\d+(!?=\\%)")
# etc