在特定图案(数字或文本)前面的位置使用stringr::str_拆分文本
假设我有一个字符串表:在特定图案(数字或文本)前面的位置使用stringr::str_拆分文本,r,regex,regex-lookarounds,stringr,strsplit,R,Regex,Regex Lookarounds,Stringr,Strsplit,假设我有一个字符串表: df <-tibble::tribble( ~ alternatives, " 23.32 | x232 code | This is a description| 43.11 | a341 code | some other description | optimised | v333 code | still another description" ) 要在特定模式之前实现拆分,正则表达式模式应该是什么?相关模式之间的管道字符数可能不同
df <-tibble::tribble(
~ alternatives,
" 23.32 | x232 code | This is a description| 43.11 | a341 code | some other description | optimised | v333 code | still another description" )
要在特定模式之前实现拆分,正则表达式模式应该是什么?相关模式之间的管道字符数可能不同,我无法可靠地使用它们。我模糊地意识到前瞻性等。此代码不会返回我期望的结果,但我相信我正在寻找类似的解决方案(这不会实现我想要的):
df2%
变异(备选方案=
str_split(备选方案,
pattern=“(?您可以尝试在以下正则表达式模式上拆分:
(?您可以尝试在以下正则表达式模式上拆分:
(?试试”(?你需要确切知道你能得到什么数字。例如,它们能包含指数吗?还有,当没有数字时,为什么要在“优化”之前拆分?或者是“在数字之前拆分,也在“优化”这个词之前拆分?”@dash2向量的各个部分要么以12.34这样的数字开头(可能是价格)或者使用关键字“optimized”Try”(?你需要确切地知道你能得到什么数字。例如,它们能包含指数吗?还有,当没有数字时,为什么要在“optimized”之前拆分?或者是“在数字之前拆分,也在单词“optimized”之前拆分?”@dash2向量的各个部分都以12.34这样的数字开头(可能是价格)或带有关键字“优化”"非常好,谢谢。你推荐哪本书来学习它?Regex几乎就像一门语言,你需要使用它来提高你的内在水平。假设Regex是你技术堆栈的一部分,这会自然而然地发生。如果不是,那么你可以自己练习。非常好,谢谢。你推荐哪本书来学习它?Regex是就像一门语言一样,你需要使用它来提高你的内在水平。假设正则表达式是你的技术堆栈的一部分,这是自然发生的。如果不是,那么你可以自己练习。
c(23.32 | x232 code | This is a description|, 43.11 | a341 code | some other description |, optimised | v333 code | still another description)
df2 <-
df %>%
mutate(alternatives =
str_split(alternatives,
pattern = "(?<=[a-zA-Z])\\s*(?=[0-9])"))
enter code here
df2 <- df %>%
mutate(alternatives =
str_split(alternatives,
pattern = "(?<=\\S)\\s+(?=(?:\\d+\\.\\d+|optimised)\\b)"))