在 regex OR group 中指定一个组

Mandate a group inside regex OR group

我要匹配字母数字字符,必须包含数字。 基本上,我想提取一个由字母、数字和一些特殊字符组合而成的订单号。我写了下面的正则表达式

String invoiceRegex = "(?<=((?i)(PO|P/O|ORDER)([\s|.]{0,4})(number|no)?[|: -.]{0,10}))([\dA-Z:-]*)";

但随后匹配到了IMMEDIATELY等无效信息。所以我想要一个匹配字母数字字符和强制数字的正则表达式。

例如:来自文本“P/O 编号:P9:8774”我想要 P9:8774。

我解决了 problem.I 用字母作为一个选项和数字 mandatory.and 的组,然后用 + 重复这个组。

现在看起来像这样。一个

String invoiceRegex = "(?<=((?i)(PO|P/O|ORDER)([\s|.]{0,4})(number|no)?[|: -.]{0,10}))([A-Z:-]*\d+)+";