n正则表达式中单词之间的字符

时间:2016-09-21 16:07:51

标签: r regex

我想使用正则表达式(在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 =”“)))

2 个答案:

答案 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+来匹配

实例:https://regex101.com/r/xJ3yZ2/1

答案 1 :(得分:0)

这可能很简单:

nchar(gsub('word1|word2','',string))<=10
#[1]  TRUE  TRUE FALSE