Please can you give me some regular expression help

3 次查看(过去 30 天)
Hi,
I'm trying to extract a number from a string. The string is of the form H970D80Dia4W19L19WT856 and I want to extract the number after the 'D', in this case 80. But regular expressions are confusing me, I can get this far
regexp(file.name,'[D]\d+','match')
Which gives 'D80', but I can't get rid of the 'D'. Can you help me with this? The strings may be different lengths and can have a different number of characters to the left and right of what I want to extract.
Also is there a good cheat sheet I can print for future reference?

采纳的回答

Andrei Bobrov
Andrei Bobrov 2016-8-24
regexp('H970D80Dia4W19L19WT856','(?<=D)\d+','match')
  2 个评论
Thorsten
Thorsten 2016-8-24
编辑:Thorsten 2016-8-24
(?<=D) is a "positive look behind assertion" which is itself not part of the match: The match is only valid if there is a "D" in front of it. Nice solution.

请先登录,再进行评论。

更多回答(1 个)

Thorsten
Thorsten 2016-8-24
c = regexp(file.name, 'D(\d+)', 'tokens')

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by