String Search with Special Characters
7 次查看(过去 30 天)
显示 更早的评论
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:
- 1st character is >
- 2nd-5th characters are ABCD
- 6th character is a space
- There are a variable number of alphanumerical characters (i.e. 0 through 9, a-z, A-Z) for the 7th slot etc.
- #4 is followed by a period
- There are again a variable number of alphanumerical characters (i.e. 0 through 9, a-z, A-Z)
- 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!
0 个评论
采纳的回答
Raouf Amara
2019-5-27
pat = '>ABCD \w*.\w*<';
str = 'whateveryouwant>ABCD 2345678.123<andmore>ABCD 1010.01<';
idx = regexp(str,pat)
0 个评论
更多回答(1 个)
Stephen23
2019-5-27
编辑:Stephen23
2019-5-27
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 个评论
Stephen23
2019-5-28
编辑:Stephen23
2019-5-28
"...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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!