From 4f9b498103e27d7f627c86938bd70f81b784aeff Mon Sep 17 00:00:00 2001 From: Konstantin Molchanov Date: Sat, 14 May 2016 09:23:09 +0400 Subject: Stdlib: nre: Convenience proc ``contains`` added. --- lib/impure/nre.nim | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'lib/impure/nre.nim') diff --git a/lib/impure/nre.nim b/lib/impure/nre.nim index c8f690461..381b1c3fc 100644 --- a/lib/impure/nre.nim +++ b/lib/impure/nre.nim @@ -566,6 +566,16 @@ proc findAll*(str: string, pattern: Regex, start = 0, endpos = int.high): seq[st for match in str.findIter(pattern, start, endpos): result.add(match.match) +proc contains*(str: string, pattern: Regex, start = 0, endpos = int.high): bool = + ## Determine if the string contains the given pattern between the end and + ## start positions: + ## - "abc".contains(re"bc") == true + ## - "abc".contains(re"cd") == false + ## - "abc".contains(re"a", start = 1) == false + ## + ## Same as ``isSome(str.find(pattern, start, endpos))``. + return isSome(str.find(pattern, start, endpos)) + proc split*(str: string, pattern: Regex, maxSplit = -1, start = 0): seq[string] = ## Splits the string with the given regex. This works according to the ## rules that Perl and Javascript use: -- cgit 1.4.1-2-gfad0