scala - Match words which have given regex around -
i need text have 2 or more spaces "\s{2,}" around them.
given following text:
ip address name location type 10.1.10.5 uslaxbowc01rb santa monica, ca local
need extract:
line1: "ip address", "name", "location", "type"
line2: "10.1.10.5", "uslaxbowc01rb", "santa monica, ca", "local"
edit:
text eligible extraction:
"ip address
" & "name
" 2 or more spaces apart eligible extracted. similarly, "santa monica, ca
" & "local
".
you try split text according pattern "\s{2,}
".
thus, in python, regex lib re
give needed tools:
import re line = "ip address name location type" result = re.split('\s{2,}',line)
which gives:
['ip address', 'name', 'location', 'type']
edit
i guess understood little more question : more care isolating sequence between \s{2,}
, splitting it. in example, however, solution above seems suitable.
you asked regex, here :
reg1 = "[^\s](?!\s{2,})(?:.(?!\s{2,}))*[^\s]"
- it first selects character not space
[^\s](?!\s{2,})
not followed 2 spaces or more. so, used negative lookahead assertion(?!...)
; - then, isolates group
(?:...)
composed in way : character.
not followed\s{2,}
; - repeat
*
; - it happens final character not selected if stop now. should add 1 more
[^\s]
.
a re.findall(reg1,line)
, , should done. 1 drawback maybe : it detects sequences @ least 2 characters long.
in case, other , simpler regex complete job : reg2 = "\s{2,}([^\s])\s{2,}"
. selects single non-space characters surrounded 2 spaces or more. use of bracket (...)
, forces return character.
by way, advise on documentation : https://docs.python.org/2/library/re.html
hope found looking :-)
Comments
Post a Comment