我想构建一个简单的正则表达式,涵盖引用的字符串,包括其中的任何转义引号.例如,
"This is valid"
"This is \" also \" valid"
Run Code Online (Sandbox Code Playgroud)
显然,像
"([^"]*)"
Run Code Online (Sandbox Code Playgroud)
不起作用,因为它匹配第一个转义引用.
什么是正确的版本?
我想其他转义字符的答案是相同的(只需替换相应的字符).
顺便说一句,我知道"全能"正则表达式
"(.*?)"
Run Code Online (Sandbox Code Playgroud)
但我尽量避免使用它,因为毫不奇怪,它比一个更具体的运行速度慢一些.
我希望一些Perl大师可以对以下内容发表意见.这是我能找到的最小可能的例子,它可以重现我的问题:
>./perl -e 'print (("a".("f"x32767)."a") =~ /a(?:[^a]|bb)*a/)'
1
Run Code Online (Sandbox Code Playgroud)
但
>./perl -e 'print (("a".("f"x32768)."a") =~ /a(?:[^a]|bb)*a/)'
>
Run Code Online (Sandbox Code Playgroud)
我从源代码编译了最新的Perl,看它是否能解决问题:
>./perl -v
This is perl 5, version 20, subversion 1 (v5.20.1) built for i686-linux
Run Code Online (Sandbox Code Playgroud)
这是一个错误(看起来像我)?
我需要2个简单的reg exps:
[]例如[word])""例如"word")