Встроенная функция WSO2 CEP isMatch не работает должным образом

В Wso2 CEP v 3.1.0 в этой ситуации я должен использовать функцию isMatch.

from in_put[isMatch('^123|^234|^345', a)]
select b,c
insert into out_put1;

Во входном потоке у меня есть 3 переменные (a, b, c), a-переменная - это 9-значное число, где я должен проверить первые 3 цифры. У меня есть 3 разных номера для проверки.

Я проверяю это регулярное выражение на этом сайте -> http://regexr.com/, и оно работает хорошо. Когда входной поток похож на 1234456, на этом сайте регулярное выражение работает хорошо, но такая же ситуация в CEP не работает. В КЭП работает только 123 или 234 или 345, но не из этого 123456, 234567, 345677.

Кто-нибудь, знает почему?


person Kacu    schedule 26.01.2015    source источник


Ответы (2)


Попробуйте это регулярное выражение:

from in_put[isMatch('^(123|234|345).*', a)]

Поскольку isMatch пытается сопоставить полную входную строку.

person anubhava    schedule 26.01.2015

(^123|^234|^345)[0-9]*$

Попробуйте это. См. демо.

https://www.regex101.com/r/rG7gX4/29

person vks    schedule 26.01.2015
comment
Спасибо за ваш ответ, но в этой версии CEP есть ошибка с символом '\', и она будет исправлена ​​в другом выпуске => wso2.org/jira/browse/CEP-865 - person Kacu; 26.01.2015
comment
Извините, это работает хорошо. Я не все копировал. Единственная разница между вашим трюком и @anubhava заключается в том, что в anubhava работает входная строка «123». - person Kacu; 26.01.2015