谁能帮我修改这个 Regex 模式,使其不使用积极的先行和后行,因为它们与 JS 和 .NET 不兼容?
我的想法是,我试图获得“-”和“-”之间的任何字符的第一个匹配项,即。 NY
来自这样的字符串:DSK-NY-110。这是我得到的有效方法,但它不能同时在 JS 和 .NET 中工作,所以我需要与两者兼容的东西:
(?<=\-)\w+(?=\-)
谢谢!
最佳答案
最安全的方法是依赖capturing groups并使用适当的代码隐藏提取子匹配项。
正则表达式可能看起来像
-(\w+)-
|---|-> Group 1
然后您只需要获取第 1 组值:
C#:
var groupID = 1; // It can even be user input
var result = Regex.Match(s, @"-(\w+)-")?.Groups[groupID].Value;
在 JS 中:
var groupID = 1, s = "Some-string-here", m;
var result = (m=s.match(/-(\w+)-/)) ? m[groupID] : "";
console.log(result);
关于javascript - 使正则表达式与 .NET 和 JS 兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56062632/