Хотите преобразовать строку в одной форме в другую форму? - PullRequest
0 голосов
/ 21 февраля 2012

У меня есть строка типа

"isnull(col_name,0)<>1 or isnull(col1_name,0)=0 and isnull(col2_name,0)>=100... "

Я хочу преобразовать приведенную выше строку в приведенную ниже форму как:

"(col_name is null or col_name<>1) или (col1_name is null or col1_name=0) и (col2_name is null or col2_name>=100) ..."

Я хочу реализовать это в JAVA.Я пытался использовать функцию разделения, но случай не похож на каждый раз (значит, между двумя может быть «ИЛИ» или «И», так как разделить?).Затем я попытался с помощью функции содержит, но как заменить эту полную часть isnull в необходимой форме.(Я также пытался использовать массив символов, он работает несколько хорошо, но где-то не получается в соответствии с моим кодом.)

На самом деле я много пробовал разными способами, но я не могу построить хорошую логику, которая будет работатьбыстро.

Просьба предложить мне хорошую идею для этого.Извините за мой плохой английский.

Спасибо.

1 Ответ

4 голосов
/ 21 февраля 2012

str.replaceAll("isnull\\(([^,]+),\\d+\\)([^\\d]+)(\\d+)", "($1 is null or $1$2$3)");

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