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

时间:2017-07-25 17:09:48

标签: php regex string text-extraction

想象一下,我有一个产品清单,例如:

  • 品牌HGT15K51B项目,用词来形容
  • 已命名为CDGL-56的产品及说明
  • 带有添加Gizmo的TR64GQE350的花式项目
  • 另一个品牌106110 110厘米大小的绿色项目带风扇

我正在尝试仅提取产品代码。

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

我的正则表达能力很弱,是否有可能用正则表达式提取?有更好的方法吗?

由于

1 个答案:

答案 0 :(得分:2)

你可以试试这个

(?<!\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