Я извлек серию таблиц из научной литературы, которые состоят из столбцов, каждый из которых является отдельным типом. Вот пример Создание регулярного выражения для списка строк
Я хотел бы иметь возможность автоматически генерировать регулярные выражения для каждого столбца. Очевидно, что существуют нетривиальные решения, такие как .*
, поэтому я бы добавить ограничения, которые они используют только:
[A-Z] [a-z] [0-9]
- явные знаки препинания (например,
','
,'''
) - "простые" кванторы (например
{3,4}
«Лучший» ответ для таблицы выше:
[A-Z]{3}
[A-Za-z\s\.]+
\d{4}\sm
\d{2}\u00b0\d{2}'\d{2}"N,\d{2}\u00b0\d{2}'\d{2}"E
(speciosissima|intermediate|troglodytes)
(hf|sr)
\d{4}
Конечно, 4-е регулярное выражение сломается, если мы выйдем за пределы географической области, но программное обеспечение этого не знает. Целью было бы собрать много регулярных выражений, например, «Координаты» и обобщить их, возможно, частично вручную. Перечисления будут созданы только в том случае, если имеется небольшое количество отдельных строк.
Я был бы признателен за примеры программного обеспечения (особенно F/OSS), которые могут это сделать, особенно в Java. (Это похоже на Google Refine). Я знаю this question 4 years ago, но это действительно не отвечало на вопрос и на сайте text2re, который кажется интерактивным.
ПРИМЕЧАНИЕ. Я отмечаю, что голосование закрывается как «слишком локализованное». Это очень общая проблема (приведенная таблица - только пример), как показано в Google/Freebase, разрабатывающем Refine для решения проблемы. Это потенциально относится к очень широкому кругу таблиц (например, финансовой, журналистской и т. Д.). Вот один из значений с плавающей запятой:
Было бы полезно автоматически определить, что некоторые органы сообщают о возрасте в реальных количествах (например, не месяцах, днях) и используют 2 цифры точности.
Еще одно «близкое» голосование как «вне темы». Учитывая, что ответ до сих пор относится точно к методу программирования, он, по-видимому, имеет явное значение. –
Что такое langugies, так как рефлексы отличаются? – Mark
@mark: я понимаю, что этот вопрос больше связан с поиском модели для каждого столбца таблицы, а не с использованием какого-либо конкретного пакета регулярных выражений или, вообще говоря, регулярных выражений вообще. –