Недоразумение относительно операторов MOD или циклов FOR в Паскале

За исключением утверждения с нулевой длиной, символ на входе всегда будет потребляться при сопоставлении. Если вы когда-либо находитесь в случае, когда вы хотите захватить определенный символ во входной строке больше один раз, вам понадобится утверждение нулевой длины в регулярном выражении.

Существует несколько утверждений с нулевой длиной (например, ^ (начало ввода / строки), $ (конец ввода / строка), \b (граница слова)), но look-arounds ((?<=) позитивный внешний вид и (?=) позитивный прогноз вперед ) - это единственный способ захватить перекрывающий текст из ввода. Отрицательные взгляды ((?<!) негативный внешний вид, (?!) негативный взгляд вперед] здесь не очень полезны: если они утверждают, что истина, то захват внутри потерпел неудачу; если они утверждают false, то совпадение не выполняется. Эти утверждения являются нулевой длиной (как упоминалось ранее), что означает, что они будут утверждать, не потребляя символы во входной строке. Они будут фактически соответствовать пустой строке, если утверждение прошло.

Применяя указанное выше знание, регулярное выражение, которое работает для вашего случая, будет:

(?=(\w\w))
0
задан TThoms 14 March 2019 в 06:29
поделиться