{-# OPTIONS_GHC -fno-warn-dodgy-exports #-} -- | -- Module : Text.RE -- Copyright : (C) 2016-17 Chris Dornan -- License : BSD3 (see the LICENSE file) -- Maintainer : Chris Dornan -- Stability : RFC -- Portability : portable module Text.RE ( -- * The Tutorial -- $tutorial -- * How to use this library -- $use -- * Further Use -- $further -- * The regex Foundational Types -- ** Matches Matches , matchesSource , allMatches , anyMatches , countMatches , matches -- ** Match , Match , matchSource , matched , matchedText -- * IsRegex -- $isregex , IsRegex(..) , searchReplaceAll , searchReplaceFirst -- * IsRegex Instances -- $instances , module Text.RE.TDFA ) where import Text.RE.TDFA() import Text.RE.ZeInternals.Types.IsRegex import Text.RE.ZeInternals.Types.Match import Text.RE.ZeInternals.Types.Matches -- $tutorial -- -- We have a regex tutorial at . -- $use -- -- This module just provides a brief overview of the regex package. You -- will need to import one of the API modules of which there is a choice -- which will depend upon two factors: -- -- * Which flavour of regular expression do you want to use? If you need -- Posix flavour REs then you will want the TDFA modules, otherwise its -- PCRE for Perl-style REs. -- -- * What type of text do you want to match: (slow) @String@s, @ByteString@, -- @ByteString.Lazy@, @Text@, @Text.Lazy@ or the anachronistic @Seq Char@ -- or indeed some good old-fashioned polymorphic operators? -- -- While we aim to provide all combinations of these choices, some of them -- are currently not available. In the regex package we have: -- -- * "Text.RE.TDFA.ByteString" -- * "Text.RE.TDFA.ByteString.Lazy" -- * "Text.RE.ZeInternals.TDFA" -- * "Text.RE.TDFA.Sequence" -- * "Text.RE.TDFA.String" -- * "Text.RE.TDFA.Text" -- * "Text.RE.TDFA.Text.Lazy" -- * "Text.RE.TDFA" -- -- The PCRE modules are contained in the separate @regex-with-pcre@ -- package: -- -- * Text.RE.PCRE.ByteString -- * Text.RE.PCRE.ByteString.Lazy -- * Text.RE.ZeInternals.PCRE -- * Text.RE.PCRE.Sequence -- * Text.RE.PCRE.String -- * Text.RE.PCRE -- $further -- For more specialist applications we have the following: -- -- * "Text.RE.REOptions" for specifying back-end specific options; -- * "Text.RE.Replace" for the full replace toolkit; -- * "Text.RE.TestBench" for building up, testing and doumenting; -- macro environments for use in REs; -- * "Text.RE.Tools" for an AWK-like text-processing toolkit. -- $isregex -- Class @IsRegex re t@ provides methods for matching the @t@ type for -- the @re@ back end as well as compiling REs from @t@ to @re@ and -- getting the source @t@ back again. The 'Replace' superclass of -- @IsRegex@ contains a useful toolkit for converting between @t@ and -- 'String' abd @Text@. -- $instances -- This module import just imports the @IsRegex TDFA s@ instances.