Regexp从转储中提取studyinstanceuid

时间:2017-11-17 17:23:29

标签: regex

我需要在包含字符串0020,000d的行上的括号之间捕获数字和点,例如:

I: (0020,000d) UI [1.2.410.200001.1104.20160720104648421 ] #  38, 1 StudyInstanceUID

使用此正则表达式0020,000d.*\[([\.0-9]+)\]只有在括号内没有空格时,我才能匹配所需的值。如何匹配忽略任何其他角色的所需值?。

修改 如果我使用这个正则表达式0020,000d.*\[([\.0-9(\s|^\s))]+)\]我可以捕获数字和点和/或空格,现在如果字符串包含空格我怎么能在一个组中捕获除空格之外的所有东西?。

为了澄清,我想提取1.2.410.200001.1104.20160720104648421字符串。

2 个答案:

答案 0 :(得分:1)

在评论中编纂我的(显然是有帮助的)答案:

您只需在结束括号前的数字和点数序列后面允许零或多个空格:

0020,000d.*\[([.0-9]+) *\]

另外,请注意,您不需要在字符类中转义点。

答案 1 :(得分:0)

试试这个

let regex = /(?!\[)[.\d]+(?=[(\s)*\]])/g

let str = 'I: (0020,000d) UI [1.2.410.200001.1104.20160720104648421   ]'

let result = str.match(regex);

console.log(result);