[英]Are XML Schema regular expressions compatible to JavaScript/ECMAScript regular expressions?
[英]How to collate sequence \" using ECMAScript regular expressions?
我正在尝试构造一个正则表达式,以将分隔的语音标记( \\"
)视为单个字符。
以下代码可以正常编译,但是在尝试初始化rgx时终止,并抛出错误Abort trap: 6
使用libc ++。
std::regex rgx("[[.\\\\\".]]");
std::smatch results;
std::string test_str("\\\"");
std::regex_search(test_str, results, rgx);
如果我删除[[. .]]
[[. .]]
,它运行正常, results[0]
按预期返回\\"
,但如上所述,我希望此序列可用作字符类。
编辑:好的,我现在意识到我以前对整理的序列的理解是不正确的,并且它不起作用的原因是未将\\\\\\\\\\"
定义为序列。所以我的新问题是:是否可以定义整理的序列?
因此,我想出了我要去哪里的错误,并认为如果有人偶然发现它,我会把它留在这里。
您可以使用(?:sequence)
指定一个被动字符组,从而允许像字符类一样应用量词。 也许与我最初提出的要求不完全相同,但至少在我看来,它实现了相同的目的。
为了匹配以双引号(包括结果中的这些字符)开头和结尾的字符串,但允许在字符串中使用带引号的引号,我使用了表达式
\"(?:[^\"^\\\\]+|(?:\\\\\\\\)+|\\\\\")*\"
它说要获取尽可能多的字符,前提是字符不是引号或反斜杠,如果不匹配,则首先尝试匹配偶数个反斜杠(以允许对此字符进行定界),或第二个定界符引号。 此非捕获组会尽可能匹配,仅在达到\\"
时才停止。
我无法对此效率发表评论,但是绝对可以。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.