使正则表达式与.NET和JS兼容

时间:2019-05-09 15:17:11

标签: javascript .net regex

有人可以帮我修改此Regex模式,以使其不使用正向和反向查找,因为它们与JS和.NET不兼容吗?

这个想法是我试图获得“-”和“-”之间的所有字符的第一个匹配项。 NY来自以下字符串:DSK-NY-110。这是我可以使用的,但是它不能同时在JS和.NET中使用,因此我需要与两者兼容的东西:

(?<=\-)\w+(?=\-)

谢谢!

1 个答案:

答案 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);