How to search a number in a random string?
12 次查看(过去 30 天)
显示 更早的评论
Hello :)
This time just a short question: I have random strings with characters and numbers. I (need) want to extract the number at the end of the string. The string consists evertime with some characters at the beginng and at the end a number. How does it work to get the number?
((( For me its difficult because i dont know how many characters are the beginning and i dont know how long the number is)))))
I saw this command. But i dont know to use it exactly.
text="tq3" %->3
text="v023"%->23
%or
text="ABCDEFRANDOM1234" %->1234
str=regexp(text,'(??????', 'match') %
0 个评论
回答(2 个)
madhan ravi
2020-7-14
编辑:madhan ravi
2020-7-14
str = str2double(regexp(text,'\d+$','match'))
3 个评论
madhan ravi
2020-7-14
Thanks Stephen ;). Sometimes MATLAB mobile gives wierd answer if the internet connection is not good.
Leon
2024-4-12
How would you adjust this to allow miscellaneous text after the number too, e.g. "thv123_gdf" => 123? Thanks.
Rohit Anand
2020-7-14
编辑:Rohit Anand
2020-7-14
You can do it all in a few steps for better understanding.
- Use regexp to get the index from where we need to slice the string. (In the below example you will get index of '1').
- Slice the string from idx onwards to get the number at the end of the string.
- Convert the obtained numeric string into a double, using str2double
text="ABCDEF78RAN9DOM1234";
idx = regexp(text, '\d+$'); % Find the first index of the number
y = extractAfter(text, idx-1); % Slice the string
number = str2double(y) % convert to double
2 个评论
Stephen23
2020-7-14
"How does it differ from the answer I gave?"
More complex for no obvious benefit.
另请参阅
类别
在 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!