使用字符串中的模式提取多个匹配项
Extract multiple matches using a pattern from a String
我想使用某种模式从更大的字符串中提取一些子字符串。下面是我的代码:
library(stringr)
str_extract_all("'abcd:3343', sdgshdg374 'rgjrkgj4252:sfsfd', wdwdw'wdwd:364:ssfd', 3434", "[''][a-zA-Z0-9]['']")
基本上,我想匹配像 ['][anything with any length][']
然后是 ,[space
] 这样的模式。因此我期待我应该得到匹配 'abcd:3343'
& 'rgjrkgj4252:sfsfd'
& 'wdwd:364:ssfd'
。请注意,对于上述每种情况,所有子字符串后跟 ,[space]
使用我上面的代码,我找不到匹配项。
能否请您帮助如何为这个问题构建正确的模式匹配?
我们可能还需要添加 :
library(stringr)
str_extract_all("'abcd:3343', sdgshdg374 'rgjrkgj4252:sfsfd',
wdwdw'wdwd:364:ssfd', 3434", "'[A-Za-z0-9:# ]+'")[[1]]
-输出
[1] "'abcd:3343'" "'rgjrkgj4252:sfsfd'" "'wdwd:364:ssfd'"
或者也可以匹配 '
后跟一个或多个不是 '
([^']+
) 的字符和 '
str_extract_all("'abcd:3343', sdgshdg374 'rgjrkgj4252:sfsfd',
wdwdw'wdwd:364:ssfd', 3434", "'[^']+'")[[1]]
[1] "'abcd:3343'" "'rgjrkgj4252:sfsfd'" "'wdwd:364:ssfd'"
我想使用某种模式从更大的字符串中提取一些子字符串。下面是我的代码:
library(stringr)
str_extract_all("'abcd:3343', sdgshdg374 'rgjrkgj4252:sfsfd', wdwdw'wdwd:364:ssfd', 3434", "[''][a-zA-Z0-9]['']")
基本上,我想匹配像 ['][anything with any length][']
然后是 ,[space
] 这样的模式。因此我期待我应该得到匹配 'abcd:3343'
& 'rgjrkgj4252:sfsfd'
& 'wdwd:364:ssfd'
。请注意,对于上述每种情况,所有子字符串后跟 ,[space]
使用我上面的代码,我找不到匹配项。
能否请您帮助如何为这个问题构建正确的模式匹配?
我们可能还需要添加 :
library(stringr)
str_extract_all("'abcd:3343', sdgshdg374 'rgjrkgj4252:sfsfd',
wdwdw'wdwd:364:ssfd', 3434", "'[A-Za-z0-9:# ]+'")[[1]]
-输出
[1] "'abcd:3343'" "'rgjrkgj4252:sfsfd'" "'wdwd:364:ssfd'"
或者也可以匹配 '
后跟一个或多个不是 '
([^']+
) 的字符和 '
str_extract_all("'abcd:3343', sdgshdg374 'rgjrkgj4252:sfsfd',
wdwdw'wdwd:364:ssfd', 3434", "'[^']+'")[[1]]
[1] "'abcd:3343'" "'rgjrkgj4252:sfsfd'" "'wdwd:364:ssfd'"