2013-01-28 1 views
0

Я следующий регулярное выражение в C# (ship|sub)(?<!^(shipment|subway)$)Преобразование. нетто регулярное выражение в JavaScript

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

Я хочу написать одно и то же выражение в java-скрипте. Я попробовал несколько опций с javascript negetive look behind. Но они не служат моей цели: например: , когда я отправляю товар на регулярное выражение, он не должен возвращать судно (поскольку я исключаю отправку в регулярном выражении). однако, когда я даю членство, он должен дать результат корабля и матча.

Может кто-нибудь из вас, пожалуйста, помогите мне.

+0

перераспределить ваше сообщение будет помогать всем, кто читает ваше сообщение –

+1

3 человека проголосовали за закрытие этого вопроса, предположительно потому, что 90% вопросов отсутствовали, но не пытались нажимать «редактировать», чтобы увидеть, что-то пошло не так. Неизбежный '' 'в коде пользователя оказался для того, чтобы скрыть большую часть вопроса. –

+0

JavaScript-анализатор regex не поддерживает отрицательный lookbehind. см. [этот вопрос] (http://stackoverflow.com/questions/641407/javascript-negative-lookbehind-equivalent) – jbabey

ответ

1

Ваше регулярное выражение также не должно работать в .NET. После того, как вы нажмете «корабль» или «под», отрицательное утверждение о возврате будет всегда:: true: вы соответствовали «кораблю» или «югу», поэтому предыдущие символы могли никогда не быть «ментом» или «биением», таким образом пропуская утверждение всегда. Вместо этого, вы должны иметь в виду:

\b(ship(?!ment)|sub(?!way))\b 

Это должно работать в JavaScript, а также, так как он только с использованием отрицательных LOOKAHEAD утверждений.

Смежные вопросы