Regex 括号之间匹配的正则表达式(ICU)
寻找一些正则表达式,它将为括号内出现的单词创建一个捕获组,而忽略括号本身。正则表达式必须是PCRE或ICU 输入:Regex 括号之间匹配的正则表达式(ICU),regex,r,pcre,icu,Regex,R,Pcre,Icu,寻找一些正则表达式,它将为括号内出现的单词创建一个捕获组,而忽略括号本身。正则表达式必须是PCRE或ICU 输入:(lakshd asd asa1123名称: 所需输出:Name 我所尝试的: \\((Name | Name | Name)\\) (? 我所尝试的: \\((Name | Name | Name)\\) (?库(stringr) >s=“(lakshd asd___;asa1123名称:____;)” >res[,2] [1] “姓名” 请注意,str\u match允许访问捕
(lakshd asd asa1123名称:
所需输出:Name
我所尝试的:
\\((Name | Name | Name)\\)
(?
我所尝试的:
\\((Name | Name | Name)\\)
(?库(stringr)
>s=“(lakshd asd___;asa1123名称:____;)”
>res[,2]
[1] “姓名”
请注意,str\u match
允许访问捕获的值
(?i)\\([^()]*\\b([a-z]\\w*)\\b[^()]*\\)
模式匹配括号和括号中的最后一个完整单词。如果不太可能出现嵌套级别的括号,那么查看当前位置后面是否会有一个右括号,而左括号应该已经打开,这将起作用(适用于ICU和PCRE):
你的意思是什么?你试图删除括号内的名称
?我不明白寻找一个已知单词并保留它的意思,这与声明一个变量并为其赋值是一样的。无论如何,你所做的都可以通过stru match(s),(?I)\([^()]*\\b(Name)\\b[^()]*\\)找到
是否也有嵌套级别的括号?在任何情况下都没有(名称)
。我认为您可以使用\\(.*(名称|名称|名称)。*\\)
我不知道r
,但不只是包含或strops
函数。@revo不需要嵌套括号以这种方式提取,但这超出了问题的范围,我不需要帮助
> library(stringr)
> s = "( lakshd asd___ asa1123 Name : _____)"
> res <- str_match(s, "(?i)\\([^()]*\\b([a-z]\\w*)\\b[^()]*\\)")
> res[,2]
[1] "Name"
(Name|name|NAME)(?=[^()]*\))