2013-07-26 2 views
-6

У меня проблема с шаблонами.Как сделать этот конкретный шаблон

У меня есть строка, как это:

string1 = "27.86.80.76.83.45.66.71.80.45.76.68.80.45.67.97.108.108.45.84.105.116.45.77.97.114.105.111" 

Строки появляются в середине одного файла, с различными длинами.

Например, я читаю файл строки за строкой, и мне нужно знать, имеет ли строка этот шаблон.

Можете вы, ребята, указать мне в правильном направлении?

+3

А как другие линии выглядят? – darxsys

+0

Другие строки могут содержать любые буквы или цифры. Мне нужно только захватить те, у которых есть шаблон, похожий на тот, что в строке1 – Zebedeu

+2

Под «этим шаблоном» вы имеете в виду группы цифр, разделенные символом '.'? Линии, начинающиеся с '27'? Линии, где сумма цифр является простой? Что относительно '12.34.56'? Должно ли это соответствовать, или вам нужно точно соответствовать 28 числовым группам? Как насчет строки '12.34 45.67'? Это матч? Два матча? И т. Д. – DSM

ответ

2

Там два разных способа сделать это:

  1. Построить синтаксический анализатор - много работы, но очень гибкой и, возможно, лучше производительности (в зависимости от реализации)

  2. использовать регулярное выражение. В вашем случае это может быть что-то вроде (\d{2,3}\.)+\d{2,3} (кратчайшей совпавшей строки должна быть "111.11")

+0

Да, вы были правы. Моя проблема была с шаблоном. У меня всегда есть проблемы с ними. – Zebedeu

+0

Будьте осторожны, я пропустил так, что пинал свой \ перед. сначала, сейчас исправил его. – griffin

Смежные вопросы