Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 括号之间匹配的正则表达式(ICU)_Regex_R_Pcre_Icu - Fatal编程技术网

Regex 括号之间匹配的正则表达式(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允许访问捕

寻找一些正则表达式,它将为括号内出现的单词创建一个捕获组,而忽略括号本身。正则表达式必须是PCRE或ICU

输入:
(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)(?=[^()]*\))