javascript - 使用 exec() 匹配字符串

标签 javascript regex

我有一个字符串,我想提取它的值。该字符串是这样的:

cdata = "![CDATA[cu1hcmod6rbg3eenmk9p80c484ma9B]]";          

我想要cu1hcmod6rbg3eenmk9p80c484ma9B。换句话说,我想要 ![[CDATA[*]].

中的任何内容。

我尝试使用以下 JavaScript 代码片段:

cdata = "![CDATA[cu1hcmod6rbg3eenmk9p80c484ma9B]]";
rePattern =    new RegExp("![?:\\s+]]","m");
arrMatch = rePattern.exec( cdata );
result = arrMatch[0];

但是代码不起作用,我很确定这是我指定匹配字符串的方式导致了问题。知道如何修复它吗?

最佳答案

你的模式应该是这样的......

/^!\[CDATA\[(.+?)\]\]$/

这是...

  1. 匹配以开始的文字![CDATA[
  2. 延迟匹配所有内容,直到结束 ] 并将其保存在捕获组 $1 中(感谢 Phrogz 的出色建议)。
  3. 匹配额外的]]

您的字符串应以 arrMatch[1] 形式提供。

关于javascript - 使用 exec() 匹配字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4600568/

相关文章:

javascript - 在 Javascript 中向日期添加可变数字

regex - Google Analytics(分析)过滤掉文件扩展名

javascript regexp 负向后查找在某些情况下不匹配

html - 正则表达式以匹配第一个结束的 HTMl 标记

regex - 正则表达式匹配除包含特定模式的单词以外的所有单词

javascript - 取 1/0 和 true/false 的 bool 值

javascript - 在 JavaScript 中,为什么不存在的 "window"属性值在这两种情况下不同?

javascript - Active Bootstrap 选项卡在 DropDown SelectedIndexChanged 事件中丢失其索引?

javascript - 为分析和跟踪设置 Android 应用程序

python - 用于提取日期中月份和年份组合的正则表达式