2015-01-26 3 views
1

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

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

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

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

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

ответ

1

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

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

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

+1

Спасибо, это работает! – Kacu

+0

Добро пожаловать, рад, что это сработало. – anubhava

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

Try this.See demo.

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

+0

Thx, для вашего ответа, но в этой версии CEP есть ошибка с символом '\', и она будет исправлена ​​в другом выпуске => https://wso2.org/jira/browse/CEP-865 – Kacu

+0

К сожалению, этот трюк не работает, как я и ожидал. – Kacu

+0

Извините, он работает хорошо. Я не копировал каждый. Единственная разница между трюком и @anubhava заключается в том, что в входной строке anubhava «123» работает. – Kacu

Смежные вопросы