String Search with Special Characters

Team,
I have reviewed quite a few posts on this subject but I must be missing something since I cannot get my string search working. If you can help I would be very thankful. Say we have the following:
Say I have a string that is built up as follows:
  1. 1st character is >
  2. 2nd-5th characters are ABCD
  3. 6th character is a space
  4. There are a variable number of alphanumerical characters (i.e. 0 through 9, a-z, A-Z) for the 7th slot etc.
  5. #4 is followed by a period
  6. There are again a variable number of alphanumerical characters (i.e. 0 through 9, a-z, A-Z)
  7. The last character is a <
How would you set up the regexp syntax to dertermine the locations in your string where these cases happen?
Here are two sample strings:
S = '>ABCD 1010.01<';
S = '>ABCD 2345678.123<';
Thank you for your help!

 Accepted Answer

pat = '>ABCD \w*.\w*<';
str = 'whateveryouwant>ABCD 2345678.123<andmore>ABCD 1010.01<';
idx = regexp(str,pat)

More Answers (1)

Stephen23
Stephen23 on 27 May 2019
Edited: Stephen23 on 27 May 2019
You can use tokens to identify the specific substrings and get their locations:
>> S = '>ABCD 2345678.123<';
>> [T,X] = regexp(S,'>(ABCD)\s(\w+)\.(\w+)<','once','tokens','tokenExtents')
T =
'ABCD'
'2345678'
'123'
X =
2 5
7 13
15 17

2 Comments

Just out of curiosity, if the string included the " or ' characters, then how would you need to handle the string?
Stephen23
Stephen23 on 28 May 2019
Edited: Stephen23 on 28 May 2019
"...if the string included the " or ' characters, then how would you need to handle the string?"
What do you mean by "handle" ? It is not clear what your question relates to: how such as string should be defined, or how the regular expression should be written to also match strings which include single/double quotes ?
If your question was actually about how to detect/ignore single/double quotes when matcing the substrings, then please specify if you want to include them or ignore them in the output.

Sign in to comment.

Categories

Tags

Asked:

on 27 May 2019

Edited:

on 28 May 2019

Community Treasure Hunt

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

Start Hunting!