Условное замещение регулярных выражений в Java, но в замещающей строке не в самом регулярном выражении - PullRequest
2 голосов
/ 18 февраля 2012

У меня есть ситуация, когда исходная строка может быть чем угодно и находится вне контроля пользователей.Пользователь может предоставить регулярное выражение и значение замены, чтобы заменить исходную строку тем, что он хочет получить желаемую результирующую строку.Проблема заключается в том, что пользователь должен иметь возможность предоставить группе регулярных выражений определенные замены
Например: если sourcestring = "1", то пользователь может создать регулярное выражение, которое заменяет его на "on", но в то же времячто когда sourcestring = "2", он заменяется на "off", а все остальное заменяется на "N / A".В коде я, вероятно, сделал бы что-то вроде sourcestring.replace ("([1]) | ([2])", ($ 1.equals ("1"))? "On": ($ 2.equals ("2")? "off": "N / A"));но второй операнд замены должен быть строкой, выбранной пользователем, и также может содержать эти условия.Есть ли способ сделать такую ​​операцию?

1 Ответ

0 голосов
/ 13 апреля 2012

Вы можете настроить пользовательские обозначения.

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

«Привет, мир, как дела?»

(Hello\W+World\W+)\s*(how\sare)\s*(you.*)

1 = Yo, man,
2 = sup
3 = yo?

Затем напишите поддерживающий Java-код.

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