正则表达式(javascript),调试器,正则表达式101
我试图理解调试器的行为,这是最基本的,因此,如果激活调试器并从第45行查看,您可以看到以下行为:正则表达式(javascript),调试器,正则表达式101,javascript,regex,Javascript,Regex,我试图理解调试器的行为,这是最基本的,因此,如果激活调试器并从第45行查看,您可以看到以下行为: 第45行引擎正在观察$符号,并了解字符串的结尾尚未到达,因此需要减去字符串 我的问题是行(46,48,50,52,54),我试图理解为什么引擎是从子模式(第46行)中的$符号(第45行)开始的,当引擎是在$符号上进行实际减法时,我认为46,48,50,52,54是浪费的行,我无法理解它们的贡献,我的意思是,当引擎在$符号上运行时发生更改时,我为什么要进入子模式,以检查字符串是否结束 如果有人能帮我,
<\/span>((?:(?!<\/span>)[\s\S])+)$
((?:(?!)[\s\s])+)$
字符串:
string</span>string</span>string</span>theStringIWant
stringthestringiwant
应该可以。您在该网站上使用过原始正则表达式吗?不应选择任何选项,即:无多行或全局或任何选项
# Delimited: /<\/span>((?:(?!<\/span>)[\s\S])+)$/
# Raw: </span>((?:(?!</span>)[\s\S])+)$
</span>
(
(?:
(?! </span> )
[\s\S]
)+
)
$
我看不到我过时的浏览器的链接。你能发布regex而不是让人不得不与一个淫秽的东西抗争吗?我在regex101调试器中看到了一些奇怪的行为,我认为这个调试器有缺陷,最好用regexbuddy进行测试。regexbuddy有免费版本吗?或者类似的软件是免费的吗?@CasimiritHippolyte:我的调试器有什么问题吗?它做的正是它应该做的。Aviel提到的线是引擎为继续比赛确定位置的线。您在regex101上看到的结果是100%准确的。感谢Lindrian的评论。
if ( "string</span>string</span>string</span>theStrngIWant" =~ /<\/span>((?:(?!<\/span>)[\s\S])+)$/)
{
print "found: '$1'\n";
}
found: 'theStrngIWant'