如何匹配包含特定字符的单词,在任何位置说'a'和'r'?例如。在
Maria xxx Paul xxx Taylor xxx Henry xxx
正则表达式应仅匹配Maria
和Taylor
。
像\d.*[ar].*\b
这样的东西不起作用,因为该字符类的意思是'a OR r',而不是'a AND r'。
它似乎适用于(?i)\b\w*((?=r)\w*(?=a)|(?=a)\w*(?=r))\w*\b
,但我想知道是否有更有效的模式?
我正在使用编辑器使用PCRE v8.36,没有JavaScript。谢谢!
答案 0 :(得分:0)
库stringr
为此提供了函数str_extract_all
。使用如下所示:
> string
[1] "Maria xxx Paul xxx Taylor xxx Henry xxx"
> str_extract_all(string, "[a-zA-Z]*a[a-zA-Z]*r[a-zA-Z]*")
[[1]]
[1] "Maria" "Taylor"
答案 1 :(得分:0)