我有一个字符串,其中包含时间戳和一些随机字符。例如,str = "11:05:46 some random text here"
和我只想获取时间戳,并使用regex将其存储在一个变量中。
时间戳格式的正则表达式是
d{2}:d{2}:d{2}
我在Matlab上使用regexp,如下所示:
timestamp = regexp(str,expression)
其中str是"11:05:46 some random text here"
并且表达式是'd{2}:d{2}:d{2}'
,但是它返回的是索引(1(而不是值本身(11:05:46
(。
在Matlab上有没有一种方法可以在值与正则表达式匹配时获取值并将其存储在变量中?预期输出:11:05:46
或者有没有一种方法可以让我只匹配除时间戳之外的所有其他内容?预期输出:此处为一些随机文本
您需要将'match'
作为第三个参数传递给regexp
函数:
timestamp = regexp(str,expression, 'match')
输出:
timestamp =
{
[1,1] = 11:05:46
}
'match'
参数使Matlab输出与表达式中的模式匹配的每个子字符串的文本,请参阅文档。
使用regexprep
,您可以删除字符串开头的时间戳,以返回所有剩余内容:
>> regexprep(str,expression,'')
ans = some random text here