2015-05-06 4 views
1

Я создаю BBEdit Textfactory (grep/regex), который преобразует повторяющийся набор из 3 строк в блоки XML, но я ударил из-за моего ограниченного понимания регулярного выражения.Найти шаблон из 3 строк текста с помощью grep, а затем преобразовать в XML

Каждая запись содержит 3 строки - имя \ 1, дата \ 4 и пункт \ 6 - и тогда картина повторяется.

только дикая карта, когда человек служил в армии: то он/она имеет тег после их имени: <FLAG>\ 2

Сейчас я могу только получить его, чтобы частично работать. Флаг-тег, кажется, всегда присоединяется к концу имени человека в позиции \ 1, хотя он имеет собственную скобку группы.

Флаг должен быть изолирован, чтобы его можно было разместить позже в XML.

Любая помощь будет оценена! (И регулярное выражение совет структурирование тоже, если это действительно ужасно.)

Вот оригинал неправильный шаблон, для справки:

^([A-z].*)(<[A-Z]{4}>)?(\r?)([A-z].*)(\r?)([A-z].*)(\r?){1} 

Вот заменить шаблон:

<item>\r 
<category>Obituary</category>\r 
<title>\1</title>\r 
<description>\r 
<em>\4</em><br />\r 
\6\r 
</description>\r 
<pubDate><DATE></pubDate>\r 
\2 
</item>\r 

Вот пример блока текста для обработки:

<pre> 

Wom The. Bat 
May 2, 2015 
Wom The Bat, 91, of city, formerly of Texas, died in the hospital. He was born in city, California. He is survived by two sons. Condolences: somewebsite.com. 
Baz Foo Bar<FLAG> 
April 30, 2015 
Baz Foo Bar, 88, of city, an Internal Revenue Service tax examiner, died at home. She was born in another city. She is survived by three daughters; 5 grandchildren; and 2 great-grandchildren. Services: 10:30 a.m. Private burial. 
John Doe<FLAG> 
April 17, 2015 
John F. Doe, 51, of city, a structural engineer, died in the city. He was born in the Philippines. He is survived by his wife, son, daughter, and two parents. Visitation: 9:30 a.m. Monday. Eulogy: 10:30 a.m. Mass: 11:15 a.m. Burial: 1 p.m. 
Jane Smith 
May 1, 2015 
Jane "Mary" Smith, 64, of city, a storage specialist, died in the hospital. She was born in city, Rhode Island. She is survived by a son; two brothers; four sisters; and her caregiver. Graveside services: 11 a.m. Monday at cemetary. Urn burial to follow. Condolences: somewebsite.com. 

</pre> 
+1

Да, '[Az]. *' Соответствует одиночному символу в диапазоне '[AZ] и' [AZ] ' а также '[', \. ']', '^', '_' и' \ '' вы тогда сопоставляете '. *', что соответствует всем. Эта картина совсем не то, что вы там хотите. –

+0

Любое предложение о том, что должно разорваться (Baz Foo Bar) и () - и продолжить, если флаг отсутствует? – Tethyr

+0

'[A-Za-z] *' будет соответствовать только буквенным символам и пробелам. '[^ <] *' будет соответствовать любому, что ** не является ** a '<'. И т.д. –

ответ

1

Это, как представляется, получить работу (по крайней мере, в BBEdit 11)!

^([A-Za-z. ]+[^<])(<[A-Z]{4}>)?(\r?\n?)([A-z].*)(\r?\n?)([A-z].*)(\r?\n?){1} 

И правильный выход

<item> 
<category>Obituary</category> 
<title>Wom The. Bat 
</title> 
<description> 
<em>May 2, 2015</em><br /> 
Wom The Bat, 91, of city, formerly of Texas, died in the hospital. He was born in city, California. He is survived by two sons. Condolences: somewebsite.com. 
</description> 
<pubDate><DATE></pubDate> 

</item> 

<item> 
<category>Obituary</category> 
<title>Baz Foo Bar</title> 
<description> 
<em>April 30, 2015</em><br /> 
Baz Foo Bar, 88, of city, an Internal Revenue Service tax examiner, died at home. She was born in another city. She is survived by three daughters; 5 grandchildren; and 2 great-grandchildren. Services: 10:30 a.m. Private burial. 
</description> 
<pubDate><DATE></pubDate> 
<FLAG> 
</item> 

<item> 
<category>Obituary</category> 
<title>John Doe</title> 
<description> 
<em>April 17, 2015</em><br /> 
John F. Doe, 51, of city, a structural engineer, died in the city. He was born in the Philippines. He is survived by his wife, son, daughter, and two parents. Visitation: 9:30 a.m. Monday. Eulogy: 10:30 a.m. Mass: 11:15 a.m. Burial: 1 p.m. 
</description> 
<pubDate><DATE></pubDate> 
<FLAG> 
</item> 

<item> 
<category>Obituary</category> 
<title>Jane Smith 
</title> 
<description> 
<em>May 1, 2015</em><br /> 
Jane "Mary" Smith, 64, of city, a storage specialist, died in the hospital. She was born in city, Rhode Island. She is survived by a son; two brothers; four sisters; and her caregiver. Graveside services: 11 a.m. Monday at cemetary. Urn burial to follow. Condolences: somewebsite.com. 
</description> 
<pubDate><DATE></pubDate> 
</item>