сделать регулярное выражение совместимым с .NET и JS - PullRequest
1 голос
/ 09 мая 2019

Может ли кто-нибудь помочь мне изменить этот шаблон Regex, чтобы он не использовал положительный прогноз и просмотр назад, поскольку они не совместимы с JS и .NET?

Идея состоит в том, что я пытаюсь получить первое совпадение любых символов, которые находятся между "-" и "-", т.е. NY из такой строки: DSK-NY-110. Вот то, что я получил, это работает, но оно не будет работать в JS и .NET одновременно, поэтому мне нужно что-то совместимое с обоими:

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

Спасибо!

1 Ответ

1 голос
/ 11 мая 2019

Самый безопасный подход - полагаться на группы захвата и извлекать подспариватели, используя соответствующий код.

Регулярное выражение может выглядеть как

-(\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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...