gpt4 book ai didi

Java 正则表达式组 OR 运算符

转载 作者:行者123 更新时间:2023-11-30 03:49:07 24 4
gpt4 key购买 nike

我正在使用java.util.regex,但我很难构建一个提取此类文本的正则表达式:

Manufacturer : ABC Inc. Price : ...
Manufacturer : ABC Inc. Quantity : ...

我想要的是在文本 Manufacturer : 之后使用不同文本的公司名称,但它可能遵循我的 PriceQuantity实在不知道如何用Java实现。

到目前为止我做了什么:

Pattern.compile("Manufacturer #:(.*)Price")
Pattern.compile("Manufacturer #:(.*)Quantity")

我可以使用

提取括号中的部分
Pattern mypattern = Pattern.compile("Manufacturer #:(.*)Price");
Matcher mymatcher = mypattern.matcher("Manufacturer #: ABC company Price");
if (mymatcher.find()) {
WhatIWant = mymatcher.group(1);
}

但我不知道如何将它们组合在一起,我尝试了 Manufacturer #:(.*)Price|Quantity ,但似乎不起作用。

如有任何帮助,我们将不胜感激!

更新:我刚刚意识到在文本段落中,有一些 pricequantity,其中 * 搜索将耗尽全文...

最佳答案

您可以尝试使用Lazy(.*?)方式以及忽略大小写

Pattern mypattern = 
Pattern.compile("Manufacturer\\s*#?:\\s*(.*?)\\s*(Price|Quantity)",
Pattern.CASE_INSENSITIVE);
Matcher mymatcher = mypattern.matcher("Manufacturer #: ABC company Price");
if (mymatcher.find()) {
System.out.println(mymatcher.group(1)); // ABC company
}

注意:匹配多行

Pattern mypattern = 
Pattern.compile("Manufacturer\\s*#?:\\s*(.*?)\\s*(Price|Quantity)",
Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);

从索引1中获取匹配的组。

Live demo

关于Java 正则表达式组 OR 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24873663/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com