首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex(javascript),Debugger,Regex101

Regex(javascript),Debugger,Regex101
EN

Stack Overflow用户
提问于 2014-03-05 19:40:06
回答 1查看 260关注 0票数 2

我试图理解Regex101调试器的行为,这是正则链,所以如果激活调试器并查看第45行,您可以看到以下行为:

  1. 第45行引擎正在监视$符号,并且理解字符串的末尾尚未到达,因此需要减去字符串。
  2. 我的问题是行( 46,48,50,52,54 ),我试着理解为什么引擎要从子模式中的$符号(第45行)转到子模式(第46行),当引擎在$符号上时,实际的减法是在$符号上完成的,而我所看到的是,46,48,50,52,54是浪费了的线,我无法理解它们的贡献,我的意思是,当在$符号上的引擎发生改变时,我为什么要进入子模式,以检查字符串是否结束。

如果有人能在这方面帮助我,我将非常感激。

更新:

裁判官:

代码语言:javascript
复制
<\/span>((?:(?!<\/span>)[\s\S])+)$

字符串:

代码语言:javascript
复制
string</span>string</span>string</span>theStringIWant
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-05 20:03:53

应该行得通。你在那个网站上用过原版吗?

不应该有选择,即:没有多行或全局或任何东西。

代码语言:javascript
复制
 #  Delimited:      /<\/span>((?:(?!<\/span>)[\s\S])+)$/
 #  Raw:             </span>((?:(?!</span>)[\s\S])+)$   

 </span>
 (
      (?:
           (?! </span> )
           [\s\S] 
      )+
 )
 $ 

Perl测试用例-

代码语言:javascript
复制
if ( "string</span>string</span>string</span>theStrngIWant" =~ /<\/span>((?:(?!<\/span>)[\s\S])+)$/)
{
    print "found: '$1'\n";
}

输出>>

代码语言:javascript
复制
found: 'theStrngIWant'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22207560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档