Will REGEXP recognize specific characters within parenthesis?
2 views (last 30 days)
Show older comments
I'm attempting to use REGEXP to match a specific string within a set of parenthesis. The code I'm using is as follows;
str = '(0:20)';
exp = '([\P\0\D\d])';
tokens = regexp(str, exp, 'tokens');
b = reshape([tokens{:}], [ ], 1).';
Data = cell2mat(b);
When executed, Data contains a 1 x 6 array of char: (0:20)
I'm having difficulty in making the expression sensitive to the contents of this array. Specifically, I'm only interested in the data if the value to the left of the colon is a zero.
Is this possible when using \P as part of the expression?
1 Comment
Stephen23
on 10 May 2017
The MATLAB regular expression syntax is documented here:
and it does not include any operator '\P'. In any case you have not given us any information about what data you want to obtain from the string: is it the second number value, or all of the string within parentheses, or both number values... is the colon always present, or could it be a concatenation operator instead? You state that "only interested in the data if the value to the left of the colon is a zero", but what is "the data"? Even parentheses could be data. It is only worth starting to write a regular expression once you clearly specify the requirements it has to meet.
You could start with something like this, which returns the number the follows '0:'
>> str = '(0:20)';
>> regexp(str,'(?<=0:)\d+','match','once')
ans =
20
Bonus You might like to download and try my FEX submission:
which lets you interactively develop regular expressions and see the outputs change as you type/alter your expression.
Accepted Answer
Walter Roberson
on 9 May 2017
MATLAB's regexp does not know anything about unicode categories. Also, \0 is not a valid unicode category name.
It looks to me as if what you are looking for is:
'\(0:\d+\)'
More Answers (0)
See Also
Categories
Find more on Logical in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!