javascript - 正则表达式(javascript),调试器,Regex101

标签 javascript regex

我试图理解 Regex101 的行为调试器,这是 regex link ,所以如果你激活调试器并从第 45 行看一下,你可以看到以下行为:

  1. 第 45 行引擎正在观察 $ 符号并了解字符串的末尾尚未到达,因此它需要减去字符串。
  2. 我的问题是行 (46,48,50,52,54),我试图理解为什么当实际减法完成时引擎从子模式(第 46 行)内的 $ 符号(第 45 行)开始当引擎在 $ 符号上时,我看到它的方式是 46、48、50、52、54 是浪费的行我无法理解他们的贡献,我的意思是当变化发生时我为什么要进入子模式$ 符号上的引擎检查字符串是否结束。

如果有人能帮助我,我将不胜感激。

更新:

正则表达式:

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

字符串:

string</span>string</span>string</span>theStringIWant

最佳答案

应该可以。您是否在该网站上使用过原始正则表达式?
不应该选择任何选项,即:没有多行或全局或任何东西。

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

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

Perl 测试用例 -

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

输出>>

found: 'theStrngIWant'

关于javascript - 正则表达式(javascript),调试器,Regex101,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22207560/

相关文章:

javascript - Knockout.js - 数组/对象文字和访问音频路径的属性

javascript - 只允许在输入字段中输入数值

使用模式和匹配器的 Java 正则表达式

javascript - 面向对象的 JavaScript 转换器

JavaScript 碰撞检测

javascript - 如何过滤 redux store 的 RxJS observables?

javascript - 如何使用 Vue.js 获取 b-form-select 的选定项。 v-on :change does nothing?

python - 如何使用 re 将字符串拆分为不同的电话?

javascript - Javascript获取youtube视频ID(正则表达式问题)

java - 索引 nnn 附近的未闭合字符类