寻找相邻的术语

时间:2013-06-30 10:48:00

标签: regex perl

我有一个字符串:

Str1 = "Confidential Design No. PXB1235GHYZ9"

此字符串也可能出现在以下变体中:

Str2 = "Confidential Design No PXB1235GHYZ9"

(注意“否”旁边没有“。”或

Str3 = "Confidential Design PXB1235GHYZ9"

鉴于关键字Design,我需要提取PXB1235GHYZ9。这个术语总是12个字符长,并且总是alpha和数字的混合。

如何使用RegEx / Perl编写通用脚本来处理所有3个场景?我应该使用空格拆分它们然后检查每个术语吗?或者有一种更简单的方法可以在所有3个场景中提取“PXB1235GHYZ9”吗?

2 个答案:

答案 0 :(得分:3)

$str =~ /Confidential Design (No\.? )?([A-Z0-9]{12})/;

这个词是2美元。

答案 1 :(得分:3)

怎么样:

$str =~ /Design +(?:No\.? +)?([A-Za-z0-9]{12})/;

检查Design,可选地后跟NoNo.,然后是12个字母数字(我假设您的代码是字母数字),全部由一个或多个空格分隔。代码将以$1结尾。

相关问题