Возможно соответствовать повтору символов regex? Как?

Предполагая, что вам не нужен оконный хром, вы можете сделать это, убрав рамку вокруг Electron и заполнив остальные html / css / js. Я написал статью о том, что вы ищете, в моем блоге здесь: http://www.mylifeforthecode.com/making-the-electron-shell-as-pretty-as-the-visual-studio-shell / . Код, с которого можно начать, также размещен здесь: https://github.com/srakowski/ElectronLikeVS

Подводя итог, необходимо передать frame: false при создании BrowserWindow:

mainWindow = new BrowserWindow({width: 800, height: 600, frame: false});

Затем создайте и добавьте кнопки управления для строки заголовка:

 
My Life For The Code

Привязка в функциях max / min / close в js:

(function () {

      var remote = require('remote'); 
      var BrowserWindow = remote.require('browser-window'); 

     function init() { 
          document.getElementById("min-btn").addEventListener("click", function (e) {
               var window = BrowserWindow.getFocusedWindow();
               window.minimize(); 
          });

          document.getElementById("max-btn").addEventListener("click", function (e) {
               var window = BrowserWindow.getFocusedWindow(); 
               window.maximize(); 
          });

          document.getElementById("close-btn").addEventListener("click", function (e) {
               var window = BrowserWindow.getFocusedWindow();
               window.close();
          }); 
     }; 

     document.onreadystatechange = function () {
          if (document.readyState == "complete") {
               init(); 
          }
     };

})();

Styling окно может быть хитрым, но ключ используют для использования специальных свойств из webkit. Вот некоторые минимальные CSS:

body {
 padding: 0px;
 margin: 0px; 
}

#title-bar {
 -webkit-app-region: drag;
 height: 24px; 
 background-color: darkviolet;
 padding: none;
 margin: 0px; 
}

#title {
 position: fixed;
 top: 0px;
 left: 6px; 
}

#title-bar-btns {
 -webkit-app-region: no-drag;
 position: fixed;
 top: 0px;
 right: 6px;
}

Обратите внимание, что они важны:

-webkit-app-region: drag;
-webkit-app-region: no-drag;

-webkit-app-region: перетаскивание в область «строки заголовка» сделает это так, что Вы можете перетащить его, как это обычно бывает с окнами. Не перетаскивание применяется к кнопкам, чтобы они не вызывали перетаскивания.

12
задан Andrea Ambu 21 June 2009 в 13:49
поделиться

4 ответа

Для этого можно использовать обратную ссылку:

(.)\1

Это будет соответствовать последовательным вхождениям любого символа.


Править Вот пример Python:

import re

regexp = re.compile(r"(.)\1")
data = ["parrot","follia","carrot","mattia","rettoo","melone"]

for str in data:
    match = re.search(regexp, str)
    if match:
        print str, "<- match for double", match.group(1)
    else:
        print str, "<- doesn't match"
37
ответ дан 2 December 2019 в 03:16
поделиться

В таких случаях необходимо использовать обратные ссылки. Я не уверен, какой язык вы используете, я попробовал следующий пример в моем редакторе VI, чтобы найти любой повторяющийся алфавит. Шаблон Регулярное выражение: \ ([az] \) \ 1

Если вы видите пример, [az] - это шаблон, который вы ищете, и заключите его в скобки (скобки должны быть экранированы на некоторых языках). Если у вас есть парантез, это группа, и на нее можно снова ссылаться в любом месте регулярного выражения, используя \ 1. Если существует более одной группы, вы можете использовать \ 1, \ 2 и т. Д. \ 1 будет заменен тем, что было найдено в первой группе.

Спасибо Арвинд

8
ответ дан 2 December 2019 в 03:16
поделиться

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

Регулярное выражение (? \ w) \ k , используя именованные группы и обратная ссылка, поиск смежных парных символов. При применении к строке «Я выпью немного кофе» она находит совпадения в словах «Я», «маленький» и «кофе». Метасимвол \ w находит любой однословный символ. Конструкция группировки (? ) включает в себя метасимвол, чтобы заставить обработчик регулярных выражений запомнить совпадение подвыражения (которое в данном случае будет любым отдельным символом) и сохранить его под именем "char ". Конструкция обратной ссылки \ k заставляет механизм сравнивать текущий символ с ранее сопоставленным символом, хранящимся в «char». Все регулярное выражение успешно находит совпадение, если единственный символ совпадает с предыдущим.

0
ответ дан 2 December 2019 в 03:16
поделиться

/ (\ b \ w *? (\ W) \ 2. *? \ B) /

будет соответствовать любому слову с как минимум повторением символа $ 1 - это слово $ 2 за первое повторение.

2
ответ дан 2 December 2019 в 03:16
поделиться
Другие вопросы по тегам:

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