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

标签 javascript .net regex

谁能帮我修改这个 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/

相关文章:

sql-server - 检查 T-SQL 中字符串的起始字符是否按字母顺序排列

c# - 通用接口(interface)中的索引器

c# - MSBuild 未将文件复制到发布文件夹?

javascript - 如何从同一数组中搜索以其他词开头和结尾的词?

javascript - 不正确的闪存包

.net - 将 UTF8 字符串解码为拉丁文

regex - 如何在 Chapel 中使用正则表达式提取子字符串?

javascript - 数组映射后出现在html中的逗号

javascript - 从 javascript 对象打印值

javascript - 查询 JSON 对象值中的 JSON 数组