【问题标题】:How to set multiple patterns in RabbitMQ policy如何在 RabbitMQ 策略中设置多个模式
【发布时间】:2021-04-02 18:59:57
【问题描述】:

我正在尝试在 RabbitMQ 中创建一个匹配多个模式的新策略。但是,以下选项不起作用。请建议在 RabbitMQ 中设置多个模式的正确方法。

需要使与名称匹配的队列过期(一段时间后)test.、Test.、TEST.*

模式不起作用,

  1. 我尝试使用策略消息 TTL 和模式为 test.*, Test.*, TEST.*
  2. 我也试过/G[test].*/i ==>不区分大小写的正则表达式

以下作品,

  1. 仅当我为 test.* 或 TEST.* 设置单独的策略时,rabbitmq 才会识别。

以下是我希望正则表达式匹配的主要队列名称集,

Service-ManualTest
TEST.service.mail
TESTCreateQueue
Test reindex            
Test.profile.queue      
Testing.service.results     
My_TestQueue    
status.queue.test   
test myQueue
testbulkupload.auto.manual
testreportqueue

【问题讨论】:

  • 你试过[Tt][Ee][Ss][Tt].*或(?i)test.*吗?
  • 那行得通@Thefourthbird。谢谢。

标签: regex rabbitmq policy


【解决方案1】:
  • 使用模式test.*, Test.*, TEST.* 将匹配一个字符串,例如这个字符串test, Test, TEST 包含3 次单词test。

  • 使用模式G[test].*(可以写成G[tse].*)将匹配例如Gt或Gs,可选地后跟任何字符。

    例如在 Javascript 中,/ 开头和结尾的格式是分隔符,/i 是不区分大小写的标志。

如果您只想匹配所有 3 种测试变体,则可以使用此模式而不使用 .*

(?:[Tt]est|TEST)

如果支持内联修饰符,您可以使用(?i)test.* 获得不区分大小写的匹配,或者使用字符类[Tt][Ee][Ss][Tt].* 列出所有选项的详细版本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    • 1970-01-01
    • 2019-08-25
    • 1970-01-01
    • 2018-07-17
    • 2013-01-07
    • 1970-01-01
    相关资源
    最近更新 更多