checking character by for loop
Show older comments
Hi guys,
I want to do that;
script = 'hi I am jo*hn' or ' hi I am jo3hn' (for=5per group)
(I have done for perfect string without noncharecter but I have to write version of that non-charecter entried. Program has to stop for loop when program see noncharacter.)
output=
Hiiam
Jo---
text='hi I am jo*hn'
for control=1:length(text1)
if text1(control) == '[^a-z]'
text1=text1(1:(control-1));
end
end
You do not have to edit printing section. I need only restrict text1 until program see a noncharacter.
5 Comments
Geoff Hayes
on 15 Apr 2020
Ugur - what is the intent of this code?
if text1(control) == '[^a-z]'
text1=text1(1:(control-1));
end
Why reset text1 to some subset of characters? I guess what I would like to know is what output are you looking for? Do you need to use a for loop? As for your condition, perhaps you are trying to exit if the character is not one of a-z (or A-Z). If that is the case then try,
for control=1:length(text1)
if ~isempty(regexpi(text1(control),'[^a-z]'))
text1=text1(1:(control-1));
break;
end
end
which "works" though it will exit/break on space characters too. To allow space characters just change your expression to '[^a-z\s]'.
Ugur Sahin
on 15 Apr 2020
Geoff Hayes
on 15 Apr 2020
You had started using '[^a-z]' so I assumed that you were trying to use a regexp or regexpi. Is this not the case?
Ugur Sahin
on 15 Apr 2020
Walter Roberson
on 15 Apr 2020
~ismember(text1(control), list_of_permitted_characters)
Answers (1)
Swaroopa
on 17 Aug 2022
Edited: Walter Roberson
on 17 Aug 2022
You can use isLetter(A) function in the MATLAB.
text1='hi I am jo*hn'
for control=1:length(text1)
if isletter(text1(control))==0
if text1(control)~=' '
text=text1(1:(control-1));
break;
end
end
end
text1=text
Refer to the below documentation for more information:
Hope this helps.
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!