Как сохранить несколько regEx в файл свойств для обработки замены содержимого? - PullRequest
0 голосов
/ 11 июля 2019

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

Вот подробности:

У меня есть файл свойств, в котором я хочу сохранить регулярное выражение. Я думаю, что это будет примерно так:

regex.replace.separator = ~
regex.replace = abc~xyz
regex.replace = <a\s.*></a>~<removed>
regex.replace = (?:x)(abc)~xyz
regex.replace = (<a[^>]*href=")[^"]*("[^>]*>)~$1#$2

~ - разделитель между regEx и строкой замены. Мне не нравится такой подход, но это то, что я придумал. Очевидно, что если regEx содержит ~, тогда мне нужно будет найти другой разделитель.

В Java-коде я прочитаю файл свойств и создам HashMap<String, String> (я разделю на regex.replace.separator). Затем у меня много файлов для обработки, и я хочу сделать текстовые замены, основанные на регулярном выражении HashMap. Например:

String fileContent = ... get file content...
for (String regEx : hashMap.keySet()) {
 String newContent = Pattern.compile(regEx).matcher(fileContent).replaceAll(hashMap.get(regEx))
}

1) Как лучше всего хранить эти регулярные выражения? Любой другой, более эффективный способ? Я ограничен структурой файлов свойств, так как это будет частью более крупного файла свойств, который настраивает приложение.

2) Я обеспокоен тем, что этот метод не сможет обрабатывать сложные regEx с поиском обходов, группами и т. Д. Мысли?

...