【发布时间】:2012-01-24 23:06:03
【问题描述】:
我是正则表达式的新手,这可能是一个非常简单的问题(希望如此)。
我正在尝试对 3 种字符串使用一种解决方案
- “45%”,预期结果:“45”
- “45”,预期结果:“45”
- "",预期结果:""
我正在尝试什么(让字符串为 str):
str.match(/(.*)(?!%*)/i)[1]
这在我的脑海中听起来像是“匹配任何直到 '%' 的任何实例,如果它被发现,或者只是匹配任何东西”
在萤火虫的脑海中,这听起来更像是“只匹配任何东西,完全忽略负前瞻”。也让它变得懒惰 - (.*)? - 似乎没有帮助。
让我们暂时忘记在这种特定情况下我只匹配数字,所以/\d*/ 就可以了。我正在尝试理解一个一般规则,以便我可以随时应用它。
有人愿意帮我吗?
【问题讨论】:
-
否定的前瞻:
(?!%*)说:“断言不遵循零个或多个百分号” 这个断言永远不会是真的,因为%*总是真的! (%*根本不匹配 - 这总是 在任何地方都是正确的 - 即使对于空字符串也是如此。)
标签: javascript regex regex-lookarounds