Положительный и отрицательный Lookahead для строк совпадений с двумя или более одинаковыми символами подряд [дубликат]

Вот некоторые подходы к работе с асинхронными запросами:
  1. Объект обезьяны браузера
  2. Q - A
  3. A + Promises.js
  4. jQuery отложен
  5. API XMLHttpRequest
  6. Использование концепции обратного вызова - как реализация в первом ответе

Пример: jQuery отложенная реализация для работы с несколькими запросами

var App = App || {};

App = {
    getDataFromServer: function(){

      var self = this,
                 deferred = $.Deferred(),
                 requests = [];

      requests.push($.getJSON('request/ajax/url/1'));
      requests.push($.getJSON('request/ajax/url/2'));

      $.when.apply(jQuery, requests).done(function(xhrResponse) {
        return deferred.resolve(xhrResponse.result);
      });
      return deferred;
    },

    init: function(){

        this.getDataFromServer().done(_.bind(function(resp1, resp2) {

           // Do the operations which you wanted to do when you
           // get a response from Ajax, for example, log response.
        }, this));
    }
};
App.init();
1
задан at. 21 March 2015 в 05:19
поделиться

1 ответ

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

^(?!.*(\w)\1).*

(?!.*(\w)\1) отрицательный lookahead, который утверждает, что строка, которая будет сопоставлена, не будет содержать повторяющихся символов , .*(\w)\1 будет соответствовать строке, которая имеет повторяющиеся символы в середине или в начале или в конце. ^(?!.*(\w)\1) соответствует всем начальным границам, кроме тех, которые имеют повторяющиеся символы. И следующий .* соответствует всем символам, существующим на этой конкретной строке. Обратите внимание, что это также соответствует пустым строкам. Если вы не хотите сопоставлять пустые строки, измените .* последним на .+

. Обратите внимание, что ^(?!(\w)\1) проверяет повторяющиеся символы только в начале строки или строки.

Lookahead и lookbehind, все вместе называемые "lookaround" , являются утверждениями с нулевой длиной, как и начало и конец строки. Они не потребляют символы в строке, а только утверждают, возможно ли совпадение или нет. Lookaround позволяет создавать регулярные выражения, которые невозможно создать без них, или это будет очень долго без них.

1
ответ дан Avinash Raj 26 August 2018 в 05:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: