Apache Camel Regex Operator не соответствует - PullRequest
1 голос
/ 19 августа 2011

Я пытаюсь использовать Apache Camel (с Spring XML), чтобы проверить, соответствует ли тело сообщения регулярному выражению:

<when>
    <simple>${body} regex 'https?://(?:www\.)?twitter\.com[^\w]+'</simple>
    <to uri="activemq:queue:test"/>
</when>

Таким образом, http://www.twitter.com/user в теле сообщения следует переместить в очередь 'test'.

Регулярное выражение совпадает в Rad Regular Expression Designer, но Camel все еще не перемещает сообщение в очередь 'test'. Есть идеи, почему это не работает?

Ответы [ 2 ]

2 голосов
/ 30 августа 2011

java.util.regex требует полного соответствия, поэтому если это то, что использует Apache Camel (?), То ваша гипотеза верна. Не проще ли было бы поставить ". *" До и после регулярного выражения?

0 голосов
/ 30 августа 2011

Решение, которое работало для меня, было:

<simple>${body} regex '(?:https?://)?(?:w{3}\.)?twitter\.com(?:/.*|/)?'</simple>

, который содержит некоторые небольшие модификации. Самым большим является подстановочный знак. * В конце, так что он соответствует чему-либо впоследствии (при условии, что он имеет косую черту первым).

Спасибо за помощь и за предложение. *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...