【问题标题】:Regex extract number between characters正则表达式提取字符之间的数字
【发布时间】:2017-10-25 03:52:10
【问题描述】:

我返回的字符串格式如下:

PR ER 

89

>

使用\n(\d+)可以从中提取数字,但有时会返回:

23 PR P 10000>

或者,它可能是这样的:

23

PR P

10000

>

在这些情况下,如何提取PR>之间的数字10000

【问题讨论】:

  • 什么正则表达式引擎?

标签: regex numbers extract


【解决方案1】:

这可能对你有用:

\d+(?=\s*>)

它查找后跟任意数量的空格和'>'的任何数字序列

【讨论】:

    【解决方案2】:

    如果你需要的话,对于java

    String str = "23 PR P 10000>";
        Pattern reg = Pattern.compile("(\\d+)");
        Matcher m = reg.matcher(str);
        while (m.find()){
            System.out.println("group : " + m. group() + " - start :" + m.start() + " - end :" + m.end());
        }
    

    【讨论】:

    • 该代码可能对 OP 有所帮助,但您能否稍微解释一下答案,以便其他错过的人知道它发生了什么以及它如何解决 OP 的问题?
    • 你应该在这里阅读和练习更多了解正则表达式link,希望对你有所帮助
    • 我不是为我自己,而是为那些将搜索答案并且他们看到的只是代码的用户。
    【解决方案3】:

    我可能会自己回答这个问题

    \d+\n>
    

    成功了! 谢谢大家

    【讨论】:

    • 您的答案与您随问题提供的任何一个示例都不匹配。它需要在数字和“>”字符之间有一个换行符。它还捕获了“>”字符,根据您的解释,这是不正确的。我在您发布答案之前提供的答案与您的示例相匹配,并且仅捕获目标数字。
    • 猜我收到的是换行符而不是回车符,不知怎的很开心
    猜你喜欢
    • 2021-01-09
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多