Я хочу направлять сообщения на основе содержимого, однако мое регулярное выражение для этого не соответствует тому, что я к нему добавляю.Почему это так?
Я пробовал некоторые тестовые веб-сайты с регулярными выражениями, и на этих веб-сайтах я получил полное соответствие.Я также адаптировал свое регулярное выражение к ".*\{value=1\}.*"
, что работает, как и ожидалось, но я думаю, что мое оригинальное решение может быть более надежным.
Это мой маршрут:
<from uri="milo-client:opc.tcp://localhost:12685?allowedSecurityPolicies=None&node=RAW(ns=2;s=items-machine_lfm_reset)&overrideHost=true"/>
<choice>
<when>
<simple>${bodyAs(String)} regex "/\bvalue=1\b/"</simple>
<log message="Value was 1."/>
</when>
<choice>
Этосообщение, которое приходит:
DataValue{value=Variant{value=1}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=132061080449440000, javaDate=Thu Jun 27 11:20:44 GMT 2019}, serverTime=DateTime{utcTime=132061080459370000, javaDate=Thu Jun 27 11:20:45 GMT 2019}}
Я ожидал, что это регулярное выражение совпадет, потому что, если я введу свое сообщение и регулярное выражение на любом веб-сайте тестирования регулярных выражений, я получу совпадение, но на самом деле я не получу совпадениеи мое когда утверждение не выполнено.