Java:使用正则表达式从输入中提取字符串

用户名

我想用条件解析输入:

  • 找到<AD(1 to n)>
  • 获取内的字符串 <AD> to </AD>

下面是我的代码和输入文本。但是,我没有得到预期的输出。我得到的输出如下

[T, > Primary , ddress , /, T, >, > Primary , ddress Line , ~Primary , ddress Line , ~Primary , ddress Line , ~Primary , ddress Line , ~City~State~Zip Code~Country, /, >; , T, > Office , ddress , /, T, >, > Primary , ddress Line , ~Primary , ddress Line , ~Primary , ddress Line , ~Primary , ddress Line , ~City~State~Zip Code~Country, /, >; , T, > Home , ddress , /, T, >, > Primary , ddress Line , ~Primary , ddress Line , ~Primary , ddress Line , ~Primary , ddress Line , ~City~State~Zip Code~Country, /, >]

public class TestProject {

    public static void main(String[] args) {
        String address ="<AT1> Primary Address </AT1><AD1> Primary Address Line 1 ~Primary Address Line 2 ~Primary Address Line 3~Primary Address Line 4~City~State~Zip Code~Country</AD1>;\n"
                + "<AT2> Office Address </AT2><AD2> Primary Address Line 1 ~Primary Address Line 2 ~Primary Address Line 3~Primary Address Line 4~City~State~Zip Code~Country</AD2>;\n"
                + "<AT3> Home Address </AT3><AD2> Primary Address Line 1 ~Primary Address Line 2 ~Primary Address Line 3~Primary Address Line 4~City~State~Zip Code~Country</AD2>";

        System.out.println(captureValues(address));
    }

    public static Pattern ptn = Pattern.compile("[^<AD0-9]+");

    public static List<String> captureValues(String address)
    {
        Matcher mtch = ptn.matcher(address);
        List<String> ips = new ArrayList<String>();
        while(mtch.find())
        {
            ips.add(mtch.group());
        }
        return ips;
    }
}
塞基耶拉

正则表达式可能不是最好的工具,但是在给定输入的情况下尝试:

Pattern ptn = Pattern.compile("(?<=<AD(\\d)>).+?(?=</AD\\d>)");

意思是:

  • (?<=<AD(\\d)>)-积极的背后<AD(digit)>
  • .+? -任何一个或多个字符,但带有延迟量词,因此它将匹配字符的最小数量,以使整个正则表达式匹配,
  • (?=</AD\\d>) -积极向前看 </AD(digit)>

第一个数字在捕获组中(\\d),因此您仍然可以通过mtch.group(1)方法来获取它如果不需要,可以删除括号。

您正则表达式[^<AD0-9]+是指一个或多个任意字符而不是:数字(0-9<A或者D,这就是为什么你会得到无效的输出,它砍你输入的每处地方的正则表达式不匹配。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用正则表达式从列表中提取字符串匹配项?

来自分类Dev

在R中使用正则表达式从链接中提取字符串

来自分类Dev

正则表达式:从字符串中提取字符串

来自分类Dev

在python正则表达式中提取字符串的子字符串

来自分类Dev

PHP /正则表达式:从字符串中提取字符串

来自分类Dev

正则表达式:从字符串中提取字符串

来自分类Dev

在Java正则表达式中提取字符串和其他字符串之间的数字

来自分类Dev

在Java正则表达式中提取字符串和其他字符串之间的数字

来自分类Dev

在python中使用正则表达式从大字符串中提取字符串列表

来自分类Dev

从字符串中提取字符(正则表达式)

来自分类Dev

从仅与正则表达式模式匹配的字符串中提取字符

来自分类Dev

正则表达式提取字符串

来自分类Dev

正则表达式提取字符串

来自分类Dev

正则表达式提取字符串

来自分类Dev

提取字符串正则表达式

来自分类Dev

在正则表达式中提取字符串

来自分类Dev

如何在正则表达式中提取字符串

来自分类Dev

从正则表达式中提取字符串

来自分类Dev

正则表达式从字符串中提取字母数字+符号组合

来自分类Dev

正则表达式在ruby中提取字符串中的iso代码

来自分类Dev

使用正则表达式从字符串中的提取字符串

来自分类Dev

在Java中使用正则表达式从URL的字符串组中提取数字

来自分类Dev

如何在java中使用正则表达式从字符串中提取数字

来自分类Dev

使用java正则表达式从字符串中提取版本

来自分类Dev

使用JS正则表达式从文本文件中提取字符串

来自分类Dev

在大熊猫中使用正则表达式从多个括号中提取字符串

来自分类Dev

从PostgreSQL中的文本字段中提取字符串(使用正则表达式?)

来自分类Dev

Java的正则表达式从字符串中提取数字和字符串

来自分类Dev

使用javascript正则表达式从字符串中提取子字符串

Related 相关文章

  1. 1

    如何使用正则表达式从列表中提取字符串匹配项?

  2. 2

    在R中使用正则表达式从链接中提取字符串

  3. 3

    正则表达式:从字符串中提取字符串

  4. 4

    在python正则表达式中提取字符串的子字符串

  5. 5

    PHP /正则表达式:从字符串中提取字符串

  6. 6

    正则表达式:从字符串中提取字符串

  7. 7

    在Java正则表达式中提取字符串和其他字符串之间的数字

  8. 8

    在Java正则表达式中提取字符串和其他字符串之间的数字

  9. 9

    在python中使用正则表达式从大字符串中提取字符串列表

  10. 10

    从字符串中提取字符(正则表达式)

  11. 11

    从仅与正则表达式模式匹配的字符串中提取字符

  12. 12

    正则表达式提取字符串

  13. 13

    正则表达式提取字符串

  14. 14

    正则表达式提取字符串

  15. 15

    提取字符串正则表达式

  16. 16

    在正则表达式中提取字符串

  17. 17

    如何在正则表达式中提取字符串

  18. 18

    从正则表达式中提取字符串

  19. 19

    正则表达式从字符串中提取字母数字+符号组合

  20. 20

    正则表达式在ruby中提取字符串中的iso代码

  21. 21

    使用正则表达式从字符串中的提取字符串

  22. 22

    在Java中使用正则表达式从URL的字符串组中提取数字

  23. 23

    如何在java中使用正则表达式从字符串中提取数字

  24. 24

    使用java正则表达式从字符串中提取版本

  25. 25

    使用JS正则表达式从文本文件中提取字符串

  26. 26

    在大熊猫中使用正则表达式从多个括号中提取字符串

  27. 27

    从PostgreSQL中的文本字段中提取字符串(使用正则表达式?)

  28. 28

    Java的正则表达式从字符串中提取数字和字符串

  29. 29

    使用javascript正则表达式从字符串中提取子字符串

热门标签

归档