从一行文本中提取连续的字母数字字符块

Extract block of consecutive alphanumeric characters from a line of text

假设我有一个产品列表,例如:

我只想提取产品代码。

这将是一大块连续的文本。它可能包含 A-Z 1-9 和 _ -。它总是大写的。它总是以 space 结尾。它的长度未知。它可能只是数字。它始终是字符串中最大的连续块。

我的正则表达式能力较弱,可以用正则表达式提取吗?有没有更好的方法?

谢谢

你可以试试这个

(?<!\S)[A-Z0-9-]{5,}(?!\S)

https://regex101.com/r/zHE8nc/2

 (?<! \S )        # Whitespace boundary
 [A-Z0-9-]{5,}    # Allowed characters, minimum 5
 (?! \S )         # Whitespace boundary