Probably over analysing this a little bit but how would stackoverflow suggest is the best way to return an integer that is contained at the end of a string.
Thus far I have considered using a simple loop, LINQ and regex but I'm curious what approaches I'll get from the community. Obviously this isn't a hard problem to solve but could have allot of variance in the solutions.
So to be more specific, how would you create a function to return an arbitrarily long integer/long that is appended at the end of an arbitrarily long string?
CPR123 => 123
ABCDEF123456 => 123456
Regex pattern like
\d+$
is a bit expensive since, by default, a string is parsed from left to right. Once the regex engine finds1
in12abc34
, it goes on to match2
, and when it encountersa
, the match is failed, next position is tried, and so on.However, in .NET regex, there is a
RegexOptions.RightToLeft
modifier. It makes the regex engine parse the string from right to left and you may get matches that are known to be closer to the end much quicker.See the online C# demo.
Am I allowed to go crazy with this?