我有以下字符串:
Source: "HKID:A1234567~PKey:00888880~DOC:TKWC033330"
Regex: .*(HKID:.*?)(.+?)((?=~)|\s|\z)
当我在 JavaScript 正则表达式测试站点进行测试时,我得到了 A1234567,所以一切都很好。
我把这个表达式放在我 Mirth 频道的一个 javascript 转换器中。但我得到的 hk_id 值是空字符串或空字符串。
我尝试过的事情:
- 使用该功能
re.match()
,但这给了我错误,笑声说cannot find function match in object...
- 我试图在下面的正则表达式周围加上单引号,或者
/
- 我试图将我的正则表达式简化为最简单的形式来测试它
re.exec('.*')
,但我仍然得到空值或空值。 - 我没有尝试运行
RegExp.$1
,而是仅尝试返回 m,但没有产生任何差异。
我认为这可能归结为我如何逃避角色,但我找不到任何关于此的 Mirth 文档,如果您有任何见解,他们将不胜感激。
var hk_id = Find_HKID();
var xml_msg =
'<?xml version="1.0" encoding="utf-8" ?> <XML><Barcode="'+hk_id+'" /></XML>';
var sResp = ResponseFactory.getSuccessResponse(xml_msg)
responseMap.put('Response', sResp);
function Find_HKID()
{
var test = 'HKID:A1234567~PKey:00888880~DOC:TKWC033330'
var re = new RegExp(test);
var m = re.exec('.*(HKID:.*?)(.+?)((?=~)|\s|\z)');
return RegExp.$1 + RegExp.$2 + RegExp.$3 + "";
}