- a (, your \(,
- any character in the range '(':'_', your \)-_, note that this range does include the comma. It's probably where you went wrong.
- any character in the range 'a':'z',
- any character in the range 'A':'Z',
- 0, or 1, which you have written as 0-1 but could be written more simply as 01
unexpected comma in regexp output
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
raym
am 26 Okt. 2019
Kommentiert: Stephen23
am 27 Okt. 2019
Hi, everyone, I want to extract the word "Df(3R)ED50003". from a string below:
The word is composed of A-Z a-z 0-9 - _ ( )
aStr = 'w[1118]; Df(3R)ED50003, P{w[+mW.Scer\FRT.hs3]=3''.RS5+3.3''}ED50003/TM6C, cu[1] Sb[1]';
Below is the code I used:
[t1,t2] = regexp(aStr,'.*(Df[\(\)-_a-zA-Z0-9]+).*','tokens')
However, I got :
t1{1}{1}
Df(3R)ED50003,
There is a comma in the end which I did not include in the regexp. I expect Df(3R)ED50003, but the results has one more comma.
Can someone help me on where an I wrong? Thanks
0 Kommentare
Akzeptierte Antwort
Guillaume
am 26 Okt. 2019
Bearbeitet: Guillaume
am 26 Okt. 2019
Note your example input is not valid matlab syntax. I assume the internal ' are meant to be doubled.
I'm not too sure what you're trying to do with your regex, some of it is overcomplicated, e.g.:
regexp(s, '.*(somexepr).*', 'tokens')
is the same as the simpler (and most likely much faster, .* can slow regexp tremendously if used carelessly)
regexp(s, 'somexpr', 'match')
I'm not entirely clear on what exactly you want to include in your match. I don't think you understand fully how [] works in a regexp, and in particular the role of - in there. Your [\(\)-_a-zA-Z0-1]+ expression matches one or more of:
>> '(':'_' %all characters matched by \)-_
ans =
'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_'
4 Kommentare
Stephen23
am 27 Okt. 2019
"somexpr can be surround by () even when there is no () in string."
That is because parentheses are a grouping operator, not literal characters:
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Characters and Strings finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!