Я проверил это в притоке БД и нашел странное решение (я не знаю, почему это работает).Если ваш идентификатор не заключен в кавычки, заменяя одинарные кавычки на двойные, замена '/cda/stats/@name'
на "/cda/stats/@name"
, кажется, исправит это.
select * from mgmgrand where "/cda/stats/@name" =~ /\[/
//matches the value /cda/stats/[name='set']
Без изменения кавычек он работает нормально для значения без [, но не работает, когдапытается сопоставить [символ.
select * from mgmgrand where '/cda/stats/@name' =~ /cda/
//matches the value /cda/stats/[name='set']
select * from val1 where '/cda/stats/@name' =~ /\[/
//does not give an output
Если вы используете указанный в кавычках идентификатор, заменив '/cda/stats/@name'
на "'/cda/stats/@name'"
или "\"/cda/stats/@name\""
, исправьте его.