Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #101100
| From | Jussi Piitulainen <harvesting@is.invalid> |
|---|---|
| Newsgroups | comp.lang.python |
| Subject | Re: Newbie: Check first two non-whitespace characters |
| Date | 2016-01-01 10:16 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <lf5mvsppvdu.fsf@ling.helsinki.fi> (permalink) |
| References | <240ab049-68a0-4a00-b911-d58cae9bfbcf@googlegroups.com> |
otaksoftspamtrap@gmail.com writes:
> 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?
No comment on whether re is good for your use case but another comment
on how. First, some test data:
>>> data = '\r\n {\r\n\t[ "etc" ]}\n\n\n')
Then the actual comment - there's a special regex type, \S, to match a
non-whitespace character, and a method to produce matches on demand:
>>> black = re.compile(r'\S')
>>> matches = re.finditer(black, data)
Then the demonstration. This accesses the first, then second, then third
match:
>>> empty = re.match('', '')
>>> next(matches, empty).group()
'{'
>>> next(matches, empty).group()
'['
>>> next(matches, empty).group()
'"'
The empty match object provides an appropriate .group() when there is no
first or second (and so on) non-whitespace character in the data:
>>> matches = re.finditer(black, '\r\t\n')
>>> next(matches, empty).group()
''
>>> next(matches, empty).group()
''
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Newbie: Check first two non-whitespace characters otaksoftspamtrap@gmail.com - 2015-12-31 10:18 -0800
Re: Newbie: Check first two non-whitespace characters MRAB <python@mrabarnett.plus.com> - 2015-12-31 18:38 +0000
Re: Newbie: Check first two non-whitespace characters Karim <kliateni@gmail.com> - 2015-12-31 19:54 +0100
Re: Newbie: Check first two non-whitespace characters Karim <kliateni@gmail.com> - 2015-12-31 20:05 +0100
Re: Newbie: Check first two non-whitespace characters cassius.fechter@gmail.com - 2015-12-31 11:21 -0800
Re: Newbie: Check first two non-whitespace characters Cory Madden <csmadden@gmail.com> - 2015-12-31 10:56 -0800
Re: Newbie: Check first two non-whitespace characters Denis McMahon <denismfmcmahon@gmail.com> - 2015-12-31 20:35 +0000
Re: Newbie: Check first two non-whitespace characters Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-12-31 23:25 +0000
Re: Newbie: Check first two non-whitespace characters Steven D'Aprano <steve@pearwood.info> - 2016-01-01 12:12 +1100
Re: Newbie: Check first two non-whitespace characters Steven D'Aprano <steve@pearwood.info> - 2016-01-01 12:23 +1100
Re: Newbie: Check first two non-whitespace characters Random832 <random832@fastmail.com> - 2015-12-31 20:31 -0500
Re: Newbie: Check first two non-whitespace characters Jussi Piitulainen <harvesting@is.invalid> - 2016-01-01 10:16 +0200
Re: Newbie: Check first two non-whitespace characters Karim <kliateni@gmail.com> - 2016-01-01 10:43 +0100
csiph-web