Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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_Flexc++ - Fatal编程技术网

Regex 如果以零或空格分隔,则在正则表达式中连接多个字符串

Regex 如果以零或空格分隔,则在正则表达式中连接多个字符串,regex,flexc++,Regex,Flexc++,我是regex新手,目前在匹配多个连续字符串时遇到了一个问题 我想匹配字符串:“这是一个字符串”。我设法做到了 但是,如果多个字符串仅由空格连接或分隔,我也希望匹配这些字符串:“this”是字符串“”,或者“this”是“一个字符串” 我遇到的问题是,如果我尝试这样做,我也会将“this”匹配为“一个字符串”(请注意,匹配的作为,这应该是两个单独的字符串) 我使用的是flexc++,所以我不能使用像lookahead这样更高级的正则表达式 目前,我将字符串定义为(我使用了多个不同的定义,这似乎是

我是regex新手,目前在匹配多个连续字符串时遇到了一个问题

我想匹配字符串:
“这是一个字符串”
。我设法做到了

但是,如果多个字符串仅由空格连接或分隔,我也希望匹配这些字符串:
“this”是字符串“
”,或者
“this”是“一个字符串”

我遇到的问题是,如果我尝试这样做,我也会将
“this”匹配为“一个字符串”
(请注意,匹配的
作为
,这应该是两个单独的字符串)

我使用的是flexc++,所以我不能使用像lookahead这样更高级的正则表达式

目前,我将字符串定义为(我使用了多个不同的定义,这似乎是最简单的定义):

然后尝试使用以下方法匹配倍数:

{string}[ \t]*{string}* 
这应该可以使用
\“[^\”]*\”([\t]*\“[^\”]*\”*

或者,如果给定字符串定义:

string\“[^\”]*\”
concat_strings{string}([\t]*{string})*

在一个表达式中
(?:“[^”]*\”\s*)+
或者像在两个表达式中那样:
字符串“[^”]*\”
然后
(?:{string}\s*)+
通常不需要转义
,但在flexc++中可能需要转义。反正也不疼。谢谢!它可以在regexr.com上运行,但在flexc++中,我得到了
[Error 1]lexer,第5行:无法识别的输入(
?')遇到了“你有关于flex++中regex的手册链接吗?”?尝试删除
?:
如:
(\“[^”]*\“\s*)+
。这是一个非捕获组,在flexc++中不确定其语法。谢谢!除了
\s
无法识别之外,这很有效,我将其替换为
[\t]*
@rezi我最后有一个
+
。它应该是
*
{string}[ \t]*{string}*