Понимание Regex для получения IP-адреса: [duplicate]

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

def getValidInt(iMaxAttemps = None):
  iCount = 0
  while True:
    # exit when maximum attempt limit has expired
    if iCount != None and iCount > iMaxAttemps:
       return 0     # return as default value

    i = raw_input("Enter no")
    try:
       i = int(i)
    except ValueError as e:
       print "Enter valid int value"
    else:
       break

    return i

age = getValidInt()
# do whatever you want to do.
1
задан Alan Moore 31 March 2014 в 12:44
поделиться

1 ответ

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

Следующее мое предположение состоит в том, что эта строка является частью большей строки.

^ соответствует начало строки по умолчанию

$ по умолчанию соответствует концу строки.

Теперь, поскольку ваша строка содержит материал до и после, вам нужно изменить это поведение по умолчанию:

С модификатором Multiline, ^ соответствует началу строки, а $ - концу строки. Дополнительную информацию см. В документации .

Итак, ваше регулярное выражение должно выглядеть примерно так:

Regex regx = new Regex("(?<=^(\s*Owner))(.|\n)*?(?=\s*Information$)", RegexOptions.Singleline | RegexOptions.Multiline);
4
ответ дан Liath 20 August 2018 в 18:57
поделиться
Другие вопросы по тегам:

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