checking character by for loop

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 个评论

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]'.
Yes I am trying to do that but could you write without isempty() and regexpi() function if it is possible ?
You had started using '[^a-z]' so I assumed that you were trying to use a regexp or regexpi. Is this not the case?
yes bu I do not have to use isempty i guess ?
~ismember(text1(control), list_of_permitted_characters)

请先登录,再进行评论。

回答(1 个)

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.

类别

帮助中心File Exchange 中查找有关 Characters and Strings 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by