MissingH-1.3.0.2: Large utility library

CopyrightCopyright (C) 2004-2011 John Goerzen
LicenseBSD3
MaintainerJohn Goerzen <jgoerzen@complete.org>
Stabilityprovisional
Portabilityportable
Safe HaskellNone
LanguageHaskell98

Data.String.Utils

Contents

Description

This module provides various helpful utilities for dealing with strings.

Written by John Goerzen, jgoerzen@complete.org

Synopsis

Whitespace Removal

strip :: String -> String Source

Removes any whitespace characters that are present at the start or end of a string. Does not alter the internal contents of a string. If no whitespace characters are present at the start or end of a string, returns the original string unmodified. Safe to use on any string.

Note that this may differ from some other similar functions from other authors in that:

  1. If multiple whitespace characters are present all in a row, they are all removed;
  2. If no whitespace characters are present, nothing is done.

lstrip :: String -> String Source

Same as strip, but applies only to the left side of the string.

rstrip :: String -> String Source

Same as strip, but applies only to the right side of the string.

Tests

Note: These functions are aliases for functions in Data.List.Utils.

startswith :: Eq a => [a] -> [a] -> Bool Source

Returns true if the given list starts with the specified elements; false otherwise. (This is an alias for "Data.List.isPrefixOf".)

Example:

startswith "He" "Hello" -> True

endswith :: Eq a => [a] -> [a] -> Bool Source

Returns true if the given list ends with the specified elements; false otherwise. (This is an alias for "Data.List.isSuffixOf".)

Example:

endswith "lo" "Hello" -> True

Conversions

Note: Some of these functions are aliases for functions in Data.List.Utils.

join :: [a] -> [[a]] -> [a] Source

Given a delimiter and a list of items (or strings), join the items by using the delimiter.

Example:

join "|" ["foo", "bar", "baz"] -> "foo|bar|baz"

split :: Eq a => [a] -> [a] -> [[a]] Source

Given a delimiter and a list (or string), split into components.

Example:

split "," "foo,bar,,baz," -> ["foo", "bar", "", "baz", ""]
split "ba" ",foo,bar,,baz," -> [",foo,","r,,","z,"]

splitWs :: String -> [String] Source

Splits a string around whitespace. Empty elements in the result list are automatically removed.

replace :: Eq a => [a] -> [a] -> [a] -> [a] Source

Given a list and a replacement list, replaces each occurance of the search list with the replacement list in the operation list.

Example:

replace "," "." "127,0,0,1" -> "127.0.0.1"

This could logically be thought of as:

replace old new l = join new . split old $ l

escapeRe :: String -> String Source

Escape all characters in the input pattern that are not alphanumeric.

Does not make special allowances for NULL, which isn't valid in a Haskell regular expression pattern.

Reading

maybeRead :: Read a => String -> Maybe a Source

Attempts to parse a value from the front of the string.