Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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 提取“!?”的出现次数一串_Regex_String_Matlab - Fatal编程技术网

Regex 提取“!?”的出现次数一串

Regex 提取“!?”的出现次数一串,regex,string,matlab,Regex,String,Matlab,假设我有一个字符串:s=hello!?怎样?!你是吗?!?!好的谢谢再见?!?!?!再见 我想使用正则表达式来提取以字符串形式出现。 在这种情况下,它应该只有一个 如何在Matlab中执行此操作?将字符串定义为 S = 'hello !? how are you !?!? fine !?!?!?'; 要计算的发生次数,请使用以下任一选项 numel(regexp(S, '\!\?')) numel(strfind(S, '!?')) 要计数'但不是等,您需要添加正则表达式,以确保搜索的“!?

假设我有一个字符串:
s=hello!?怎样?!你是吗?!?!好的谢谢再见?!?!?!再见

我想使用正则表达式来提取
以字符串形式出现。
在这种情况下,它应该只有一个


如何在Matlab中执行此操作?

将字符串定义为

S = 'hello !? how are you !?!? fine !?!?!?';
要计算<代码>的发生次数,请使用以下任一选项

numel(regexp(S, '\!\?'))
numel(strfind(S, '!?'))
要计数<代码>'但不是
等,您需要添加正则表达式,以确保搜索的
“!?”前面或后面没有另一个
“!?”

numel(regexp(S, '(?<!\!\?)\!\?(?!\!\?)'))
numel(regexp(S),(?regex

\s(!\?)\s
捕获到!的匹配项,以空格分隔。示例字符串中只有一个。现在,我不知道如何在Matlab中执行此操作,但它应该类似于获取字符串中正则表达式的匹配项,并获取返回列表的长度

Matlab代码应该是这样的:

str = 'hello !? how ?! are you ?!?! fine!?!?! thanks !?!?!? bye ?!?!?! bye !';
expression = '\s(!\?)\s';
matchStr = regexp(str, expression, 'match')
length(matchStr)

我数了6次“!?”-您可能需要澄清您的要求。我希望避免将所有其他事件也计算在内!?。它应该只计算一次事件,因为其他!?!?是!?的组合。您发布的方式捕获了!?的所有事件!好的,它可以工作,但当我编辑帖子时,它也会将开始为?!的事件计算在内,因为它会在其中找到。很抱歉,但我需要考虑所有可能的情况,所以你不想计算<代码>???> /代码>……这一点在你的问题中根本不清楚。你还不想计算哪些其他的情况?你的WANTH到底想计算什么?现在还不清楚。代码>!?