Regular expressions: number that does not begin or end with a letter
3 views (last 30 days)
Show older comments
Hi
This is my first post here.
I'm trying to read a file that has strings like this one c0, ("cee zero comma") but it has other strings like 117. So I need to create a regular expression that only selects numbers that don't have any non numbers in front of them. Makes sense?
How can I select only the 0?
I have tried ^(?![\D][0-9]+ without success. I know this doesn't do anything at the end.
In simpler terms, what I'm trying to achieve is this: use regexp to only select decimal numbers and integers (but the interger part should not select integers that are in the decimal number...) .
Here is one of the lines I'm working on: d="M117.125,310.375c0,-77.729,80.738,-140.625,180.515,-140.625" />
0 Comments
Accepted Answer
Debasish Samal
on 13 Jun 2019
Edited: Debasish Samal
on 13 Jun 2019
Here is a solution to your answer. This solution separates all the decimal numbers/integers from the non integers/decimals.
str = "M117.125,310.375c0,-77.729,80.738,-140.625,180.515,-140.625" ;
exp1 = ',';
splitStr = regexp(str,exp1,"split");
exp3 = '[^0-9.,-]'
splitStr = regexprep(splitStr,exp3,'')
Output:
"117.125" "310.3750" "-77.729" "80.738" "-140.625" "180.515" "-140.625"
If this is what you needed, try the above regexp.
If you dont split the string at the commas you get this output.
splitStr = "117.125,310.3750,-77.729,80.738,-140.625,180.515,-140.625"
0 Comments
More Answers (1)
See Also
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!