text.replaceAll ("(? i) (" + query + ")", "<b> $ 1 </b>") с GWT - PullRequest
2 голосов
/ 29 июня 2011

Я бы хотел использовать replaceAll с GWT более конкретно:

doSomeGWTStuffWithTheString(text.replaceAll("(?i)(" + query + ")", "<b>$1</b>"));

Но по какой-то причине он не запускается.Я полагаю, я должен использовать какую-то специальную библиотеку для этого.

Если вы знаете, как сделать это в GWT, пожалуйста, дайте мне знать.

Я использую бета-версию 2.4 GWT.

Ответы [ 2 ]

5 голосов
/ 29 июня 2011

String.replaceAll() на стороне клиента GWT внутренне использует реализацию Javascript RegExp. Взгляните на RegExp (класс оболочки) javadoc . Там написано:

Java-specific constructs in the regular expression syntax 
(e.g. [a-z&&[^bc]], (?<=foo), \A, \Q) work only in the pure Java implementation, 
not the GWT implementation, and are not rejected by either.

Похоже, использование (?i) не поддерживается.

2 голосов
/ 29 июня 2011

Если это вся ваша строка, вы забыли назначить возвращаемую строку чему-либо.Метод replaceAll() неявно присваивает результат замены своему String объекту.

Test:

String text = "I am trying to match SOMETHING";
String query = "ing";

System.out.println(text);
text = text.replaceAll("(?i)(" + query + ")", "<b>$1</b>");
System.out.println(text);

Выход:

I am trying to match SOMETHING
I am try<b>ing</b> to match SOMETH<b>ING</b>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...