-4

我有一个字符串:

Str1 = "Confidential Design No. PXB1235GHYZ9"

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

Str2 = "Confidential Design No PXB1235GHYZ9"

(注意“否”旁边的“。”)或

Str3 = "Confidential Design PXB1235GHYZ9"

给定关键字 Design,我需要提取 PXB1235GHYZ9。该术语的长度始终为 12 个字符,并且始终是字母和数字的混合体。

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

4

2 回答 2

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

期限为 2 美元。

于 2013-06-30T10:53:34.787 回答
3

关于什么:

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

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

于 2013-06-30T10:55:32.007 回答