我正在与SAP BI/BO服务器交互,一些Web服务需要输入ID,称为“CUID”(Cluser Unique ID)。例如,有一个webservice getObjectById需要CUID作为输入。
我试图通过检查用户输入的CUID是否有意义来使代码更健壮,但我找不到一个正则表达式来正确描述CUID的外观。有很多关于GUID的文档,但它们并不相同。下面是我们系统中发现的一些CUID示例,看起来它们格式良好,但我不确定:
AQA9CNo0cXNLt6sZp5Uc5P0
AXiYjXk_6cFEo.esdGgGy_w
AZKmxuHgAgRJiducy2fqmv0
ASSn7jfNPCFDm12sv3muJwU
AUmKm2AjdPRMl.b8rf5ILww
AaratKz7EDFIgZEeI06o8Fc
ATjdf_MjcR9Anm6DgSJzxJ8
AaYbXdzZ.8FGh5Lr1R1TRVM
Afda1n_SWgxKkvU8wl3mEBw
AaZBfzy_S8FBvQKY4h9Pj64
AcfqoHIzrSFCnhDLMH854Qc
AZkMAQWkGkZDoDrKhKH9pDU
AaVI1zfn8gRJqFUHCa64cjg
我的猜测是:从大写字母A
开始,然后在[0-9A-Za-Z_.]
范围内添加22个随机字符。但也许它可能是A意味着其他东西,过了一段时间,它将使用B
...
有没有人熟悉这种类型的身份证,以及他们是如何格式化?
(快速补充问题:我是否需要像这样转义方括号中的“dot”以获得实际的点字符?)
1条答案
按热度按时间piwo6bdm1#
SAP知识库注解1285103中描述了不同ID类型的定义及其用途:* BusinessObjects Enterprise存储库中使用的ID有哪些不同类型?*
但是,我找不到任何关于CUID格式的描述。我不会对它做任何假设,除了它是字母数字的事实。
我在一个存储库上做了一个快速查询,发现CUID最多由35个字符组成,以字母
A
、B
、C
、F
、k
和M
开头。如果查看存储库数据库,更具体地说,是表
CMS_INFOOBJECTS7
,您会注意到列SI_CUID
被定义为VARCHAR2
,大小为56字节(Oracle RDBMS)。因此,匹配这些的有效正则表达式是
[a-zA-Z0-9\._]+
。