Привет! Я добавляю фильтр уровня столбца в просмотрщик таблиц, который будет содержать специальные символы в фильтруемом столбце.Этот столбец будет содержать строку xpath в качестве данных, которая, очевидно, будет содержать специальные символы, подобные приведенным ниже,
xpath = // a [@ name = 'Panel: swappableContent: toggleButton'] / span [@class= 'standardized-icon expandIcon']
Я создал объект фильтра, код приведен ниже,
public class ObjectLocatorFilter extends ViewerFilter {
private String searchString;
public void setSearchText(String string) {
// ensure that the value can be used for matching
this.searchString = ".*" + string + ".*";
}
@Override
public boolean select(Viewer viewer, Object parentElement, Object element) {
if(searchString == null || searchString.length() == 0){
return true;
}
Element elem = (Element) element;
if(elem.getObjectLocator().matches(searchString)){
return true;
}
return false;
}
}
и добавил фильтр в средство просмотра таблиц, используя приведенные нижекод,
objectLocatorFilter = new ObjectLocatorFilter();
tableViewerPageObjects.addFilter(objectLocatorFilter);
tableViewerPageObjects.refresh();
, но при попытке поиска с текстом, подобным [@ class = '', это приводит к следующему исключению,
java.util.regex.PatternSyntaxException: Unclosed character class near index 13
.*[@class=''.*
^
at java.util.regex.Pattern.error(Pattern.java:1955)
at java.util.regex.Pattern.clazz(Pattern.java:2548)
Просьба указать мне, как добавить решение этой проблемывопрос.заранее спасибо.