/usr/lib/swipl/library/pcre.pl
AllApplicationManualNameSummaryHelp

  • swipl
    • library
      • error.pl
      • apply.pl -- Apply predicates on a list
      • lists.pl -- List Manipulation
      • debug.pl -- Print debug messages and test assertions
      • broadcast.pl -- Event service
      • socket.pl -- Network socket (TCP and UDP) library
      • predicate_options.pl -- Access and analyse predicate options
      • shlib.pl -- Utility library for loading foreign objects (DLLs, shared objects)
      • option.pl -- Option list processing
      • uid.pl -- User and group management on Unix systems
      • unix.pl -- Unix specific operations
      • syslog.pl -- Unix syslog interface
      • thread_pool.pl
      • gensym.pl -- Generate unique symbols
      • settings.pl -- Setting management
      • arithmetic.pl -- Extensible arithmetic
      • main.pl -- Provide entry point for scripts
      • readutil.pl -- Read utilities
      • ssl.pl -- Secure Socket Layer (SSL) library
      • crypto.pl -- Cryptography and authentication library
      • pldoc.pl -- Process source documentation
      • operators.pl -- Manage operators
      • pairs.pl -- Operations on key-value lists
      • prolog_source.pl -- Examine Prolog source-files
      • pengines.pl -- Pengines: Web Logic Programming Made Easy
      • record.pl -- Access compound arguments by name
      • memfile.pl
      • sgml.pl -- SGML, XML and HTML parser
      • quasi_quotations.pl -- Define Quasi Quotation syntax
      • pure_input.pl -- Pure Input from files and streams
      • time.pl -- Time and alarm library
      • uri.pl -- Process URIs
      • solution_sequences.pl -- Modify solution sequences
      • uuid.pl -- Universally Unique Identifier (UUID) Library
      • ordsets.pl -- Ordered set manipulation
      • random.pl -- Random numbers
      • base64.pl -- Base64 encoding and decoding
      • aggregate.pl -- Aggregation operators on backtrackable predicates
      • pcre.pl -- Perl compatible regular expression matching for SWI-Prolog
        • re_match/2
        • re_match/3
        • re_matchsub/3
        • re_matchsub/4
        • re_foldl/6
        • re_split/3
        • re_split/4
        • re_replace/4
        • re_replace/5
        • re_compile/3
        • re_flush/0
        • re_config/1
      • pengines_io.pl -- Provide Prolog I/O for HTML clients
      • sandbox.pl -- Sandboxed Prolog code
      • apply_macros.pl -- Goal expansion rules to avoid meta-calling
      • assoc.pl -- Binary associations
      • prolog_format.pl -- Analyse format specifications
      • yall.pl -- Lambda expressions
      • sha.pl -- SHA secure hashes
      • process.pl -- Create processes and redirect I/O
      • filesex.pl -- Extended operations on files
      • zlib.pl -- Zlib wrapper for SWI-Prolog
      • bdb.pl -- Berkeley DB interface
      • hash_stream.pl -- Maintain a hash on a stream
      • md5.pl -- MD5 hashes
      • porter_stem.pl
      • csv.pl -- Process CSV (Comma-Separated Values) data
      • pprint.pl -- Pretty Print Prolog terms
      • atom.pl -- Operations on atoms
      • ctypes.pl -- Character code classification
      • modules.pl -- Module utility predicates
      • occurs.pl -- Finding and counting sub-terms
      • prolog_xref.pl -- Prolog cross-referencer data collection
      • prolog_colour.pl -- Prolog syntax colouring support.
      • lazy_lists.pl -- Lazy list handling
      • prolog_code.pl -- Utilities for reasoning about code
      • ugraphs.pl -- Graph manipulation library
      • xpath.pl -- Select nodes in an XML DOM
      • iostream.pl -- Utilities to deal with streams
      • doc_http.pl -- Documentation server
      • url.pl -- Analysing and constructing URL
      • www_browser.pl -- Open a URL in the users browser
      • prolog_pack.pl -- A package manager for Prolog
      • prolog_config.pl -- Provide configuration information
      • git.pl -- Run GIT commands
      • strings.pl -- String utilities
      • dif.pl -- The dif/2 constraint
      • dialect.pl -- Support multiple Prolog dialects
      • edinburgh.pl -- Some traditional Edinburgh predicates
      • ansi_term.pl -- Print decorated text to ANSI consoles
      • terms.pl -- Term manipulation
      • listing.pl -- List programs and pretty print clauses
      • persistency.pl -- Provide persistent dynamic predicates
      • pengines_sandbox.pl -- Declare Pengine interaction sandbox-safe
      • term_to_json.pl
      • prolog_stack.pl -- Examine the Prolog stack
      • prolog_clause.pl -- Get detailed source-information about a clause
      • prolog_breakpoints.pl -- Manage Prolog break-points
      • wfs.pl -- Well Founded Semantics interface
      • mallocinfo.pl -- Memory allocation details
      • chr.pl
      • sort.pl
      • dicts.pl -- Dict utilities
      • varnumbers.pl -- Utilities for numbered terms
      • nb_set.pl -- Non-backtrackable sets
      • redis.pl -- Redis client
      • zip.pl -- Access resource ZIP archives
      • xsdp_types.pl -- XML-Schema primitive types
      • increval.pl -- Incremental dynamic predicate modification
      • tables.pl -- XSB interface to tables
      • mqi.pl
      • make.pl -- Reload modified source files
      • base32.pl -- Base32 encoding and decoding
      • charsio.pl -- I/O on Lists of Character Codes
      • codesio.pl -- I/O on Lists of Character Codes
      • coinduction.pl -- Co-Logic Programming
      • date.pl -- Process dates and times
      • heaps.pl -- heaps/priority queues
      • rbtrees.pl -- Red black trees
      • statistics.pl -- Get information about resource usage
      • when.pl -- Conditional coroutining
      • backcomp.pl -- Backward compatibility
      • check.pl -- Consistency checking
      • rdf.pl -- RDF/XML parser
      • redis_streams.pl -- Using Redis streams
      • snowball.pl -- The Snowball multi-lingual stemmer library
      • double_metaphone.pl -- Phonetic string matching
      • doc_latex.pl -- PlDoc LaTeX backend
      • prolog_stream.pl -- A stream with Prolog callbacks
      • threadutil.pl -- Interactive thread utilities
      • unicode.pl -- Unicode string handling
      • explain.pl -- Describe Prolog Terms
      • crypt.pl
      • prolog_jiti.pl -- Just In Time Indexing (JITI) utilities
      • sgml_write.pl -- XML/SGML writer module
      • prolog_debug.pl -- User level debugging tools
      • readline.pl -- GNU readline interface
      • plunit.pl -- Unit Testing
      • prolog_history.pl -- Per-directory persistent commandline history
      • prolog_codewalk.pl -- Prolog code walker
      • prolog_metainference.pl -- Infer meta-predicate properties
      • prolog_autoload.pl -- Autoload all dependencies
      • system.pl -- System utilities
      • hashtable.pl -- Hash tables
      • archive.pl -- Access several archive formats
      • writef.pl -- Old-style formatted write
      • quintus.pl -- Quintus compatibility
      • shell.pl -- Elementary shell commands
      • oset.pl -- Ordered set manipulation
      • intercept.pl -- Intercept and signal interface
      • optparse.pl -- command line parsing
      • rdf_triple.pl -- Create triples from intermediate representation
      • rdf_parser.pl
      • rewrite_term.pl
      • yaml.pl -- Process YAML data
      • edit.pl -- Editor interface
      • help.pl -- Text based manual
      • utf8.pl -- UTF-8 encoding/decoding on lists of character codes.
      • portray_text.pl -- Portray text
      • prolog_profile.pl -- Execution profiler
      • files.pl
      • rlimit.pl
      • odbc.pl
      • test_cover.pl -- Clause coverage analysis
      • prolog_trace.pl -- Print access to predicates
      • isub.pl -- isub: a string similarity measure
      • qsave.pl -- Save current program as a state or executable
      • prolog_wrap.pl -- Wrapping predicates
      • cgi.pl -- Read CGI parameters
      • thread.pl -- High level thread primitives
      • c14n2.pl -- C14n2 canonical XML documents
      • paxos.pl -- A Replicated Data Store
      • fastrw.pl -- Fast reading and writing of terms
      • pwp.pl -- Prolog Well-formed Pages
      • udp_broadcast.pl -- A UDP broadcast proxy
      • protobufs.pl -- Google's Protocol Buffers ("protobufs")
      • editline.pl -- BSD libedit based command line editing
      • table.pl
      • stomp.pl -- STOMP client.
      • streampool.pl -- Input multiplexing
      • xmlenc.pl -- XML encryption library
      • rdf_write.pl -- Write RDF/XML from a list of triples
      • rwlocks.pl -- Read/write locks
      • macros.pl -- Macro expansion
      • streams.pl -- Manage Prolog streams
      • doc_files.pl -- Create stand-alone documentation files
      • xmldsig.pl -- XML Digital signature
      • prolog_versions.pl -- Demand specific Prolog versions
 re_match(+Regex, +String) is semidet
 re_match(+Regex, +String, +Options) is semidet
Succeeds if String matches Regex. For example:
?- re_match("^needle"/i, "Needle in a haystack").
true.

Defined Options are given below. For details, see the PCRE documentation. If an option is repeated, the first value is used and subsequent values are ignored. Unrecognized options are ignored. Unless otherwise specified, boolean options default to false.

If Regex is a text pattern (optionally with flags), then any of the Options for re_compile/3 can be used, in addition to the Options listed below. If Regex is the result of re_compile/3, then only the following execution-time Options are recognized and any others are ignored. Some options may not exist on your system, depending on the PCRE2 version and how it was built - these unsupported options are silently ignored.

  • start(From) Start at the given character index
  • anchored(Bool) If true, match only at the first position
  • bol(Bool) String is the beginning of a line (default true) - affects behavior of circumflex metacharacter (^).
  • empty(Bool) An empty string is a valid match (default true)
  • empty_atstart(Bool) An empty string at the start of the subject is a valid match (default true)
  • eol(Bool) String is the end of a line - affects behavior of dollar metacharacter ($) (default true).
  • newline(Mode) If any, recognize any Unicode newline sequence, if anycrlf, recognize CR, LF, and CRLF as newline sequences, if cr, recognize CR, if lf, recognize LF, if crlf recognize CRLF as newline. The default is determined by how PCRE was built, and can be found by re_config(newline2(NewlineDefault)).
  • newline2(Mode) - synonym for newline(Mode).
  • utf_check(Bool) - see PCRE2 API documentation You should not need this because SWI-Prolog ensures that the UTF8 strings are valid, so the default is false.
  • endanchored(Bool) - see PCRE2 API documentation
  • partial_soft(Bool) - see PCRE2 API documentation
  • partial_hard(Bool) - see PCRE2 API documentation
  • dfa_restart(Bool) - see PCRE2 API documentation
  • dfa_shortest(Bool) - see PCRE2 API documentation
Arguments:
Regex- is the output of re_compile/3, a pattern or a term Pattern/Flags, where Pattern is an atom or string. The defined flags and their related option for re_compile/3 are below.
  • x: extended(true)
  • i: caseless(true)
  • m: multiline(true)
  • s: dotall(true)
  • a: capture_type(atom)
  • r: capture_type(range)
  • t: capture_type(term)

If Regex is the output of re_compile/3, any compile-time options in Options or Flags are ignored and only match-time options are used.

The options that are derived from flags take precedence over the options in the Options list. In the case of conflicting flags, the first one is used (e.g., ra results in capture_type(range)).