我想使用正则表达式(在R,版本3.3.1中)匹配以下模式:单词,最多10个字符 - 单词。
我尝试了以下代码:sub_list
,以及其他一些类似的组合,但没有成功。
以下是输出的一些示例:
"word1".{0,10}"word2"$
等
修改 我尝试了你所有的建议,但没有他们的工作。我尝试从DATA API查询一些数据。在查询部分我必须写出我想要GET的内容。例如,这有效:query = list(q = paste0(“\”“,”SomeSurname“,”。“,”SomeName“,”。“,”\“”,“~5” ,sep =“”))),但如果我想以名称和姓氏之间最多10个任意字符的方式添加约束它不起作用:query = list(q = paste0(“\”“, prebivaliste [i,“prezime”],“。{0,5}”,prebivaliste [i,“ime”],“\”“,”~5“,sep =”“)))
答案 0 :(得分:1)
我认为这应该与您追求的相符:
(word1)(?:.){0,10}(word2)
(word1) - capture the literal text: "word1"
(?:.) - Set up non capturing group for any character
{0,10} - 0-10 times
(word2) - capture the literal text "word2"
grepl('(word1)(?:.){0,10}(word2)', x)
# [1] TRUE TRUE FALSE
假设您想要捕获任何单词而不是word1 / word2,您可以使用\\w
或\\w+
来匹配
答案 1 :(得分:0)
这可能很简单:
nchar(gsub('word1|word2','',string))<=10
#[1] TRUE TRUE FALSE