我想分割一个字符串并保留它被分割的位置。
str = 'Glenn: $53 Sutter: $44'
strsplit(str, '[0-9]\\s+[A-Z]', perl = TRUE)
# [[1]]
# [1] "Glenn: $5" "utter: $44" ## taking out what was matched
strsplit(str, '(?=[0-9]\\s+[A-Z])', perl = TRUE)
# [[1]]
# [1] "Glenn: $5" "3" " Sutter: $44" ## splitting at each component of the match
有没有办法在整个定界符处分割它?所以它返回:
# [1] "Glenn: $53" "Sutter: $44"
最佳答案
我们可以使用正则表达式环视在大写字母之前和数字之后分割一个或多个空格 (\\s+
)
strsplit(str, "(?<=[0-9])\\s+(?=[A-Z])", perl = TRUE)[[1]]
#[1] "Glenn: $53" "Sutter: $44"
关于r - 在整个分隔符处分割,但不是分隔符的每个组成部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60978174/