Extract the number within the bracket

29 views (last 30 days)
I have string a = 'a_b_c_d(1.0)'
I need to extract the number within the bracket.
my answer shoud be b = '1.0'
how can i do this using regular expression or other method?
Thank you
  4 Comments
Guillaume
Guillaume on 29 Jun 2015
It may be safer to use a non-greedy * (that is *?) in case there is more than one bracketed expression in the string.

Sign in to comment.

Accepted Answer

Guillaume
Guillaume on 29 Jun 2015
Edited: Guillaume on 29 Jun 2015
Any number of regular expression would do 'extract whatever is between two brackets:
str = 'a_b_c_d(1.0)';
regexp(str, '(?<=\()[^)]*(?=\))', 'match', 'once')
is one possibility. This
  • looks ahead for an opening bracket.
  • matches any number of characters as long as they're not a closing bracket
  • looks behind for a closing bracket.

More Answers (1)

Thorsten
Thorsten on 29 Jun 2015
Edited: Thorsten on 29 Jun 2015
This extracts all digits and all '.' from a:
numstr = a(regexp(a, '[\d\.]'))
This extracts all numbers between ( ), where number must have at least one digit before the point and one digit after the point:
numstr = regexp(a, '\((\d+\.\d+)\)', 'tokens')
The outer \( and \) match the '(' and ')', resp., in a, and the inner ( ) are meta-characters to group a token.

Community Treasure Hunt

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

Start Hunting!