R中的正则表达式,用于检测保留分隔符的单个数字和两个数字
我正在尝试使用tidy R包将行拆分为多行 这是我的数据集中的一个单元格R中的正则表达式,用于检测保留分隔符的单个数字和两个数字,r,regex,delimiter,tidyr,R,Regex,Delimiter,Tidyr,我正在尝试使用tidy R包将行拆分为多行 这是我的数据集中的一个单元格 column 1 1. a 2. b 33. c df = separate_rows(df,`column 1`, sep = "(?=\\d[\\.]\\s)" 当我使用上述代码时: 我明白了 Actual Output | Desired Output 1. a | 1. a 2. b | 2. b 3 |
column 1
1. a
2. b
33. c
df = separate_rows(df,`column 1`, sep = "(?=\\d[\\.]\\s)"
当我使用上述代码时:
我明白了
Actual Output | Desired Output
1. a | 1. a
2. b | 2. b
3 | 33. c
3. c |
你可以用
separate_rows(df,`column 1`, sep = "(?m)(?!\\A)(?=^\\d+\\.\\s)")
正则表达式详细信息
-(?m)
现在匹配行位置的开始^
-在字符串开头时导致匹配失败的负前瞻(?!\A)
-直接在当前位置右侧的正向前瞻,需要(?=^\d+\.\s)
-行的开头^
-1+位\d+
-一个点\。
-空白\s
df%>%separate(column\u 1,into=c('v1','v2'),sep='))
或者,如果您只是拆分多行文本,请尝试使用separate\u行(df,'column 1',sep=“(?m)(?!\\A)(?=^\\d+\\\.\\s)”)
修复您的方法。不,我正在尝试将一行拆分为多行。当我使用这个正则表达式“(?=\\d[\\.]\\s)”时,它能够检测带句点符号的单个数字,但当检测两个数字和一个句点时,它会将其分成两行。你可以通读(通过许多其他链接到伟大的在线资源)和所谓的社区帖子。还有,值得一看。基本的正则表达式课程可在以下网址获得:。