我是SystemVerilog环境下的svlib
包的新用户。参见Verilab svlib。我有以下示例文本:
{'PARAMATER': 'lollg_1', 'SPEC_ID': '1G3HSB_1'}
我想用正则表达式从文本中提取1G3HSB
。
我使用下面的代码片段,但我得到的是整行,而不是只提取的字符串。
wordsRe = regex_match(words[i], "\'SPEC_ID\': \'(.*?)\'");
$display("This is the output of Regex: %s", wordsRe.getStrContents())
有人能告诉我哪里出了问题吗?我得到的输出:
{'PARAMATER': 'lollg_1', 'SPEC_ID': '1G3HSB_1'}
我想得到:
1G3HSB_1
1条答案
按热度按时间jv2fixgn1#
看起来你需要用
getMatchString(1)
获取第一个捕获组的内容。此外,你需要使用一个贪婪的量词(懒惰的量词不符合POSIX)和一个否定的括号表达式-[^']*
而不是.*?
:请参阅用户指南详细信息:
getMatchString(m)
总是完全等效于在包含搜索字符串的 Str 对象上调用range方法: