Regex для соответствия нескольким строкам

Похоже, вы хотите запустить исполняемый файл JAR с триггером времени в Azure. Самый простой способ - развернуть файл JAR как WebJob в Azure WebApp. Вот шаги, чтобы сделать это, как показано ниже.

  1. Создайте файл .bat с именем run.bat и напишите следующие команды, как показано ниже.

    set JAVA_HOME=D:\Program Files (x86)\Java\jdk1.8.0_172
    set CLASSPATH=.;%JAVA_HOME%\lib
    set PATH=%JAVA_HOME%\bin;%PATH%
    java -jar .jar
    
  2. Сожмите файл run.bat и файл jar в zip-файл, а затем разверните его с триггером Scheduled и значением CRON Expression на портале Azure.

    enter image description here

Затем вы можете запустить его на портале Azure и просматривать текущие журналы с помощью кнопки Logs. [ 1120]

Примечание: для получения дополнительной информации о CRON Expression или других, пожалуйста, смотрите раздел CRON expressions официального урока Run Background tasks with WebJobs in Azure App Service.

14
задан Jon Tackabury 30 March 2009 в 19:13
поделиться

4 ответа

Если можно гарантировать, что существуют не зарезервированные regex символы в списке слов (или если Вы выходите из них), Вы могли бы просто использовать этот код для создания a big word list в @"(a|big|word|list)". Нет ничего неправильно с | оператор, поскольку Вы используете его, настолько же долго как они () окружите его. Это походит \w* и \b шаблоны - то, что вмешивается в Ваши соответствия.

String[] pattern_list = whatever;
String regex = String.Format("({0})", String.Join("|", pattern_list));
22
ответ дан 1 December 2019 в 09:13
поделиться

Я не совсем уверен, что regex один предложения решение для того, что Вы пытаетесь сделать. Вы могли, однако, использовать следующий код для создания regex выражения для пообещанного. Хотя, получающийся regex шаблон имеет потенциал, чтобы становиться очень долго и замедляться:

function wordPermutations( $word, $minLength = 2 )
{
    $perms = array( );

    for ($start = 0; $start < strlen( $word ); $start++)
    {
        for ($end = strlen( $word ); $end > $start; $end--)
        {
            $perm = substr( $word, $start, ($end - $start));

            if (strlen( $perm ) >= $minLength)
            {
                $perms[] = $perm;
            }
        }
    }

    return $perms;
}

Тестовый код:

$perms = wordPermutations( 'great', 3 );  // get all permutations of "great" that are 3 or more chars in length
var_dump( $perms );

echo ( '/\b('.implode( '|', $perms ).')\b/' );

Вывод в качестве примера:

array
  0 => string 'great' (length=5)
  1 => string 'grea' (length=4)
  2 => string 'gre' (length=3)
  3 => string 'reat' (length=4)
  4 => string 'rea' (length=3)
  5 => string 'eat' (length=3)

/\b(great|grea|gre|reat|rea|eat)\b/
1
ответ дан 1 December 2019 в 09:13
поделиться
(good)*(great)*

после Вашего редактирования:

\b(g*o*o*d*)*(g*r*e*a*t*)*\b
4
ответ дан 1 December 2019 в 09:13
поделиться

Я не понимаю проблемы правильно:

Если Вы хотите соответствовать "большой" или "reat", можно выразить это шаблоном как:

"g?reat"

Это просто говорит, что "reat" - часть должна существовать, и "g" является дополнительным.

Это соответствовало бы "reat" и "большой", но не "поело" бы, потому что первый "r" в "reat" требуется.

Если Вы имеете также слова, "большие" и "хорошие", и Вы хотите соответствовать им обоим дополнительному "g", который можно записать этому как это:

(g?reat|g?ood)

И если Вы хотите включать границу слова как:

\b(g?reat|g?ood)

Необходимо знать, что это не соответствовало бы ничему как "breat", потому что у Вас есть "reat", но "r" не на границе слова из-за "b".

Таким образом, если Вы хотите распознать целые слова, которые содержат ссылку подстроки "reat" или "OOD" затем, необходимо попробовать:

"\b\w*?(reat|ood)\w+\b"

Это читает: 1. Начало с границы слова начинает соответствовать любым словесным символам числа, но не является жадным. 2. Соответствуйте "reat" или "OOD" enshures, что только те слова распознаны, которые содержат один из них. 3. Соответствуйте любому количеству словесных символов после "reat" или "OOD", пока следующая граница слова не будет достигнута.

Это будет соответствовать:

"совершенство", "хорошее", "OOD" (если полное слово)

Это может быть считано как: Дайте мне все полные слова, которые содержат "OOD" или "reat".

Это то, что Вы ищете?

0
ответ дан 1 December 2019 в 09:13
поделиться
Другие вопросы по тегам:

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