有人可以帮我修改此Regex模式,以使其不使用正向和反向查找,因为它们与JS和.NET不兼容吗?
这个想法是我试图获得“-”和“-”之间的所有字符的第一个匹配项。 NY
来自以下字符串:DSK-NY-110。这是我可以使用的,但是它不能同时在JS和.NET中使用,因此我需要与两者兼容的东西:
(?<=\-)\w+(?=\-)
谢谢!
答案 0 :(得分:1)
最安全的方法是依靠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);