我在使用正则表达式和strsplit时遇到了问题,我想将以下x
字符串根据第二个:
符号进行拆分。
x <- "26/11/19, 22:16 - Super Mario: It's a me: Super Mario!, but also : the princess"
然后可以获得类似于这样的东西
"26/11/19, 22:16 - Super Mario"
" It's a me: Super Mario!, but also : the princess"
我使用strsplit
函数,用下面的正则表达式进行分割,这个正则表达式基于我所知道的内容是这样的:"选择仅由字母前导的冒号符号后跟一个空格的符号"。
我尝试使用?
符号使正则表达式变成非贪婪模式,但显然我漏掉了一些东西,结果并不如预期工作,因为它还包括me:
在内。
我认为有一个非贪婪操作符是必要的,因为这里的字符串只是一个示例,当然我并不总是拥有单词Mario
。
strsplit(x, "(?<=[[:alpha:]]):(?= )", perl = TRUE)
非常感谢您提前的支持!
Mario:
中,冒号是第一个,而不是第二个,后面跟着一个空格,并且前面有一个字母。请在陈述您的要求时更加精确。 - Cary Swovelandstrsplit(x, '\\d.*?:.*?:\\K', perl = TRUE)
- rawra:b:c: d
和a: b:c: d
,您希望在b
和c
之间的冒号上进行拆分。是这样吗?如果是,那么您问题中的斜体从句有什么目的? - Cary Swoveland