javascript - 如何在正则表达式中使用前瞻来匹配无字符?

标签 javascript regex actionscript lookahead

我在一个函数中有一组正则表达式,对我来说工作得很好,但我遇到了一个新模式,但它们失败了。当字符串中没有更多字符时,此函数将失败。例如,我的函数匹配并替换以下文本: "1 m is equivalent to..."变成 "1 meter is equivalent to..."然而,它失败了: “1 m 有 100 cm

我正在使用 AS3,我相信它有一个几乎等同于 JavaScript 的正则表达式引擎。当前模式是:

[0-9]+ m(?= )|[0-9]+m(?= )

我遍历了一个模式列表和替换字符串,因此很容易将另一个模式添加到列表中。我试过:

[0-9]+ m(?=)|[0-9]+m(?=)

和:

[0-9]+ m(?='')|[0-9]+m(?='')

但都失败了。我错过了一个基本的知识点。我相信我需要知道如何说“当行中没有其他字符时向前看并匹配”

最佳答案

您可以通过查找单词边界 (\b) 来简化您的表达式;像这样:

var regex = /(\d+)\s*m\b/;
regex.exec('1 m is equivalent to...'); // => ["1 m", "1"]
regex.exec('There are 100 cm in 1 m'); // => ["1 m", "1"]

关于javascript - 如何在正则表达式中使用前瞻来匹配无字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6034455/

相关文章:

ruby-on-rails - ruby 正则表达式 : distinguishing between iOS Safari & iOS Chrome

javascript - TS/JS 从正则表达式匹配中分割字符串的一部分

Python,RegEx,替换匹配的某个部分

actionscript-3 - Actionscript 3 是否提供列表理解和 lambda 演算?

Flash 安全沙箱 : crossDomain. xml 不起作用

javascript - Canvas 图像与侧面检测碰撞

javascript - 当我单击单选按钮时,其 true 或自动其他 Span 值变为 false

javascript - 具有 'as' 属性的通用 React TypeScript 组件(能够渲染任何有效的 dom 节点)

javascript - 为什么 NVD3.js 线加条形图示例呈现两个图表而不是一个?

actionscript - swf 中使用的神秘 Assets ,在 fla 中找不到?