On Fri, 1 Jan 2016 05:18 am, [email protected] wrote:
> I need to check a string over which I have no control for the first 2
> non-white space characters (which should be '[{').
>
> The string would ideally be: '[{...' but could also be something like
> ' [ { ....'.
>
> Best to use re and how? Something else?
This should work, and be very fast, for moderately-sized strings:
def starts_with_brackets(the_string):
the_string = the_string.replace(" ", "")
return the_string.startswith("[}")
It might be a bit slow for huge strings (tens of millions of characters),
but for short strings it will be fine.
Alternatively, use a regex:
import re
regex = re.compile(r' *\[ *\{')
if regex.match(the_string):
print("string starts with [{ as expected")
else:
raise ValueError("invalid string")
This will probably be slower for small strings, but faster for HUGE strings
(tens of millions of characters). But I expect it will be fast enough.
It is simple enough to skip tabs as well as spaces. Easiest way is to match
on any whitespace:
regex = re.compile(r'\w*\[\w*\{')
--
Steven
--
https://mail.python.org/mailman/listinfo/python-list