regexp with _ recognized as a letter

4 views (last 30 days)
Luca cadalo
Luca cadalo on 7 Apr 2017
Commented: Guillaume on 7 Apr 2017
when you use regexp regexp(Date, '(?<=Month=)\w+', 'match')
Date=Year2012_MonthMay_Day05
this character '_' is recognized as a letter??? so the information of the month can not be separated properly

Answers (1)

Walter Roberson
Walter Roberson on 7 Apr 2017
\w does not match "letters"
"\w Any alphabetic, numeric, or underscore character. For English character sets, \w is equivalent to [a-zA-Z_0-9]"
If you want to match English letters then use [a-zA-Z]
  2 Comments
Luca cadalo
Luca cadalo on 7 Apr 2017
so, in that case, you can not use \w
Guillaume
Guillaume on 7 Apr 2017
No you cannot use \w. It's trivial to replace it with something that would work. I assume
regexp(Date, '(?<=Month)[^_]+', 'match')
would probably work for you. Note that I've removed the = you had after Month since it would have failed to match your example string.

Sign in to comment.

Categories

Find more on Characters and Strings in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!