匹配单词中任意位置的特定字符
Matching specific characters at any position in words
如何在任何位置匹配包含特定字符的单词,例如 'a' 和 'r'?例如。在
Maria xxx Paul xxx Taylor xxx Henry xxx
正则表达式应仅匹配 Maria
和 Taylor
。
像 \d.*[ar].*\b
这样的东西不起作用,因为那个字符 class 意味着 'a OR r',而不是 'a AND r'。
它似乎与 (?i)\b\w*((?=r)\w*(?=a)|(?=a)\w*(?=r))\w*\b
一起使用,但我想知道是否有更有效的模式?
我正在使用与 PCRE v8.36 兼容的编辑器,没有 JavaScript。谢谢!
库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"
以下 RegEx
应该可以完成您的任务:
[A-z]*[Aa][A-z]*[Rr][A-z]*|[A-z]*[Rr][A-z]*[Aa][A-z]*
Here你可以看到一个工作示例。
如何在任何位置匹配包含特定字符的单词,例如 'a' 和 'r'?例如。在
Maria xxx Paul xxx Taylor xxx Henry xxx
正则表达式应仅匹配 Maria
和 Taylor
。
像 \d.*[ar].*\b
这样的东西不起作用,因为那个字符 class 意味着 'a OR r',而不是 'a AND r'。
它似乎与 (?i)\b\w*((?=r)\w*(?=a)|(?=a)\w*(?=r))\w*\b
一起使用,但我想知道是否有更有效的模式?
我正在使用与 PCRE v8.36 兼容的编辑器,没有 JavaScript。谢谢!
库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"
以下 RegEx
应该可以完成您的任务:
[A-z]*[Aa][A-z]*[Rr][A-z]*|[A-z]*[Rr][A-z]*[Aa][A-z]*
Here你可以看到一个工作示例。