小编sia*_*ian的帖子

有没有办法找出谁在阅读我的 SQS 消息?

我有一个队列,只要我在其中发送一些消息,就会从中读取消息。我没有配置死信队列,所以如果处理发送的消息产生异常,消息应该总是在那里。

我的代码是一个 SpringBootApplication,它侦听该队列并在发送一些错误消息时产生异常。侦听是通过 JMS 侦听器完成的。

更改队列名称后,相同的消息会一直存在,直到我手动删除它。但是在之前的队列中它被删除了,据我所知,我发现这真的很奇怪,因为我没有在任何地方运行我的服务。

我需要找出谁正在从我的 SQS 读取和删除消息。(IP 地址、AWS 凭证或其他东西)有办法吗?我听说过 CloudTrail 并试图弄清楚。

java amazon-sqs amazon-web-services amazon-cloudtrail

8
推荐指数
1
解决办法
793
查看次数

在特定顺序后删除所有字符

我想在第一个数字序列结束后删除所有字符.

编辑:(对不起歧义)

  1. 字符串可能以字母开头,也可能不以字母开头,但如果它开始,则应保留字母.
  2. 在第一个数字序列之后,应删除所有内容.

    例如QWEE1232RTY - > QWE1232

    123RTY - > 123

    12342 - > 12342

    str.replaceAll("[^A-Z][^0-9]+","");
    
    Run Code Online (Sandbox Code Playgroud)

这应该工作,但它给出了意想不到的输出,而不是打印重复的"2".

我尝试的想法代码和它的各自输出

    import java.util.*;
    import java.lang.*;
    import java.io.*;    
    class Ideone
    {
        public static void main (String[] args) throws java.lang.Exception
        {
            String str = "BCTC27452ASDFCCC";
            System.out.println(str.replaceAll("[^A-Z0-9]",""));
               // BCTC27452ASDFCCC
            System.out.println(str.replaceAll("[^A-Z0-9]$",""));
               // BCTC27452ASDFCCC
            System.out.println(str.replaceAll("[^A-Z][^0-9]",""));
               // BCTC2745SDFCCC
            System.out.println(str.replaceAll("[^A-Z][^0-9]+",""));     
            // Closest Output - "BCTC2745" (why 2nd "2" not printed)
            System.out.println(str.replaceAll("[^A-Z][^0-9]*",""));
               // BCTC
            System.out.println(str.replaceAll("[^A-Z][^0-9+]",""));
               // BCTC2745SDFCCC
            System.out.println(str.replaceAll("[^A-Z][^0-9*]","")); 
               // BCTC2745SDFCCC    

            System.out.println("Expected Output: BTC27452");

        }
    }
Run Code Online (Sandbox Code Playgroud)

java regex

-1
推荐指数
1
解决办法
69
查看次数