Я ищу для регулярного выражения для отображения только IP-адреса ниже строкрегулярного выражения, чтобы удалить первые и последние символы
LAN_10.100.10.41_fc3/7
мне нужно выход, как показано ниже
10.100 .10.41
заранее спасибо ..
Я ищу для регулярного выражения для отображения только IP-адреса ниже строкрегулярного выражения, чтобы удалить первые и последние символы
LAN_10.100.10.41_fc3/7
мне нужно выход, как показано ниже
10.100 .10.41
заранее спасибо ..
группа захвата будет самым простым, я думаю. Что-то вроде этого:
.+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).+
Вышеупомянутое предполагает, что вы используете что-то вроде C++ или C# для разбора и отображения. Таким образом, отображение результата является функцией вашего «языка». Если он зафиксирован в массиве, отобразите его соответствующим образом. Иногда он будет отображаться \1
. Вам нужно будет прочитать документы для ответа.
Однако, как Стивен отметил, что если вы используете скрипт для этого и Grep, то что-то подобное должно также хватает:
grep -o "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}" -
Это предположить, Linux и BASH, так что если вы используя Windows, проверьте, что может быть сделано с Powershell. В -o
говорится: «напечатайте только соответствующую часть линии» и -
- это обозначение BASH для STDIN
. Не зная, какие инструменты вы используете для этого, трудно быть более конкретным. Кстати, лучшее тестирование регулярного выражения сайт Я еще не нашел is Regexr.
Он превосходит '255.255.255.255'. –
Нет необходимости в группе захвата. Просто оставьте '. +' Off в начале, а затем группа становится ненужной. –
@StevenDoggart OP не выражал того, что он делал. Поэтому я включил «. +» В начале, чтобы «быть уверенным». Например, с помощью Boost :: Regex, если вы используете (я считаю) семейство функций 'boost :: regex_match()', то регулярное выражение должно * точно соответствовать * строке, тогда как 'boost :: regex_search()' ведет себя больше как то, что используется для того, что «grep» или аналогичные инструменты. Группа захвата указана просто потому, что он сказал, что хочет отображать IP-адрес и не соответствовать ему только. –
Чтобы извлечь IP-адрес из строки, подобной этой, используя посмотреть вокруг утверждений, используйте следующее регулярное выражение.
Regex: /(?<=._)[\d.]+(?=_.)/g
Объяснение:
(?<=._)
ищет что-нибудь, за которым следует _
, который появляется в структуре вашей строки.
(?=_.)
ищет что-либо, за которым следует _
, который появляется в вашей строке.
[\d.]+
Ищите как можно больше digits
и dots
, что делает шаблон IP-адреса.
Это соответствует LAN_
10.100.10.41
_fc3/7
только средняя часть, которая является IP-адрес.
пожалуйста, добавьте информацию о вашем входе (много адресов? Один в каждой строке?), Инструмент или язык, который вы используете, и что вы пробовали или как – sidyll
Start из '_ ([^_] +) _ ' – raina77ow
У меня есть LAN_10.100.10.41_fc3/7 текст в одном слоте, это просто слово, которое вы можете рассмотреть – user3714706