This is the latest docs version
Quick Links
  • -Overview
  • -Language Features
  • -JS Interop
  • -Build System
Documentation
Language Manual
Reference for all language features
ReScript & React
First class bindings for ReactJS
GenType
Seamless TypeScript integration
Reanalyze
Dead Code & Termination analysis
Exploration
Packages
Explore third party libraries and bindings
Syntax Lookup
Discover all syntax constructs
APIPlaygroundBlogCommunity
  • Playground
  • Blog
  • Twitter
  • GitHub
  • Forum
Core Module
Overview
Core
submodules
  • Array
  • ArrayBuffer
  • AsyncIterator
  • BigInt
  • BigInt64Array
    • Constants
    BigUint64Array
    • Constants
  • Console
  • DataView
  • Date
    • UTC
  • Dict
  • Error
    • URIError
    • TypeError
    • SyntaxError
    • ReferenceError
    • RangeError
    • EvalError
  • Exn
  • Float
    • Constants
    Float32Array
    • Constants
    Float64Array
    • Constants
    Int
    • Constants
    Int16Array
    • Constants
    Int32Array
    • Constants
    Int8Array
    • Constants
  • Internal
  • Intl
    • Segments
    • Segmenter
    • RelativeTimeFormat
    • PluralRules
    • NumberFormat
      • Grouping
    • Locale
    • ListFormat
    • DateTimeFormat
    • Collator
    • Common
  • Iterator
  • JSON
    • Decode
    • Encode
    • Classify
  • List
  • Map
  • MapperRt
  • Math
    • Int
    • Constants
  • Null
  • Nullable
  • Object
  • Option
  • Ordering
  • Promise
  • Re
    • Result
    RegExp
    • t
      t
    • v
      fromString
    • v
      fromStringWithFlags
    • v
      test
    • v
      exec
    • v
      lastIndex
    • v
      ignoreCase
    • v
      global
    • v
      multiline
    • v
      source
    • v
      sticky
    • v
      unicode
    • Result
  • Result
  • Set
  • String
  • Symbol
  • Type
    • Classify
  • TypedArray
  • Uint16Array
    • Constants
    Uint32Array
    • Constants
    Uint8Array
    • Constants
    Uint8ClampedArray
    • Constants
  • WeakMap
  • WeakSet
  • API / Core / Regexp

    RegExp

    Functions for handling RegExp's in ReScript.

    See RegExp on MDN.

    t

    RESCRIPT
    type t = Js.Re.t

    Type representing an instantiated RegExp.

    fromString

    RESCRIPT
    let fromString: string => t

    fromString(string) creates a RegExp.t from the provided string. This can then be used to match on strings using RegExp.exec.

    See RegExp on MDN.

    Examples

    RESCRIPT
    // Match the first word in a sentence let regexp = RegExp.fromString("\\w+") switch regexp->RegExp.exec("ReScript is pretty cool, right?") { | None => Console.log("Nope, no match...") | Some(result) => Console.log(result->RegExp.Result.fullMatch) // Prints "ReScript" }

    fromStringWithFlags

    RESCRIPT
    let fromStringWithFlags: (string, ~flags: string) => t

    fromStringWithFlags(string) creates a RegExp.t from the provided string, using the provided flags. This can then be used to match on strings using RegExp.exec.

    See RegExp parameters on MDN.

    Examples

    RESCRIPT
    // Match the first word in a sentence let regexp = RegExp.fromStringWithFlags("\\w+", ~flags="g") switch regexp->RegExp.exec("ReScript is pretty cool, right?") { | None => Console.log("Nope, no match...") | Some(result) => Console.log(result->RegExp.Result.fullMatch) // Prints "ReScript" }

    test

    RESCRIPT
    let test: (t, string) => bool

    test(regexp, string) tests whether the provided regexp matches on the provided string.

    See RegExp.test on MDN.

    Examples

    RESCRIPT
    // Match the first word in a sentence let regexp = RegExp.fromString("\\w+") if regexp->RegExp.test("ReScript is cool!") { Console.log("Yay, there's a word in there.") }

    exec

    RESCRIPT
    let exec: (t, string) => option<Result.t>

    exec(regexp, string) executes the provided regexp on the provided string, optionally returning a RegExp.Result.t if the regexp matches on the string.

    See RegExp.exec on MDN.

    Examples

    RESCRIPT
    // Match the first word in a sentence let regexp = RegExp.fromString("\\w+") switch regexp->RegExp.exec("ReScript is pretty cool, right?") { | None => Console.log("Nope, no match...") | Some(result) => Console.log(result->RegExp.Result.fullMatch) // Prints "ReScript" }

    lastIndex

    RESCRIPT
    let lastIndex: t => int

    lastIndex(regexp) returns the index the next match will start from.

    See RegExp.lastIndex on MDN.

    Examples

    RESCRIPT
    // Match the first word in a sentence let regexp = RegExp.fromString("\\w+") let someStr = "Many words here." Console.log(regexp->RegExp.lastIndex) // Logs `0` to the console regexp->RegExp.exec(someStr)->ignore Console.log(regexp->RegExp.lastIndex) // Logs `4` to the console

    ignoreCase

    RESCRIPT
    let ignoreCase: t => bool

    ignoreCase(regexp) returns whether the ignore case (i) flag is set on this RegExp.

    See RegExp.ignoreCase on MDN.

    Examples

    RESCRIPT
    let regexp1 = RegExp.fromStringWithFlags("\\w+", ~flags="g") Console.log(regexp1->RegExp.ignoreCase) // Logs `false`, since `i` is not set let regexp2 = RegExp.fromStringWithFlags("\\w+", ~flags="i") Console.log(regexp2->RegExp.ignoreCase) // Logs `true`, since `i` is set

    global

    RESCRIPT
    let global: t => bool

    global(regexp) returns whether the global (g) flag is set on this RegExp.

    See RegExp.global on MDN.

    Examples

    RESCRIPT
    let regexp1 = RegExp.fromStringWithFlags("\\w+", ~flags="g") Console.log(regexp1->RegExp.global) // Logs `true`, since `g` is set let regexp2 = RegExp.fromStringWithFlags("\\w+", ~flags="i") Console.log(regexp2->RegExp.global) // Logs `false`, since `g` is not set

    multiline

    RESCRIPT
    let multiline: t => bool

    multiline(regexp) returns whether the multiline (m) flag is set on this RegExp.

    See RegExp.multiline on MDN.

    Examples

    RESCRIPT
    let regexp1 = RegExp.fromStringWithFlags("\\w+", ~flags="g") Console.log(regexp1->RegExp.multiline) // Logs `false`, since `m` is not set let regexp2 = RegExp.fromStringWithFlags("\\w+", ~flags="mi") Console.log(regexp2->RegExp.multiline) // Logs `true`, since `m` is set

    source

    RESCRIPT
    let source: t => string

    source(regexp) returns the source text for this RegExp, without the two forward slashes (if present), and without any set flags.

    See RegExp.source on MDN.

    Examples

    RESCRIPT
    let regexp = RegExp.fromStringWithFlags("\\w+", ~flags="g") Console.log(regexp->RegExp.source) // Logs `\w+`, the source text of the `RegExp`

    sticky

    RESCRIPT
    let sticky: t => bool

    sticky(regexp) returns whether the sticky (y) flag is set on this RegExp.

    See RegExp.sticky on MDN.

    Examples

    RESCRIPT
    let regexp1 = RegExp.fromStringWithFlags("\\w+", ~flags="g") Console.log(regexp1->RegExp.unicode) // Logs `false`, since `y` is not set let regexp2 = RegExp.fromStringWithFlags("\\w+", ~flags="my") Console.log(regexp2->RegExp.unicode) // Logs `true`, since `y` is set

    unicode

    RESCRIPT
    let unicode: t => bool

    unicode(regexp) returns whether the unicode (y) flag is set on this RegExp.

    See RegExp.unicode on MDN.

    Examples

    RESCRIPT
    let regexp1 = RegExp.fromStringWithFlags("\\w+", ~flags="g") Console.log(regexp1->RegExp.unicode) // Logs `false`, since `u` is not set let regexp2 = RegExp.fromStringWithFlags("\\w+", ~flags="mu") Console.log(regexp2->RegExp.unicode) // Logs `true`, since `u` is set
    Types and values
    • t
      t
    • v
      fromString
    • v
      fromStringWithFlags
    • v
      test
    • v
      exec
    • v
      lastIndex
    • v
      ignoreCase
    • v
      global
    • v
      multiline
    • v
      source
    • v
      sticky
    • v
      unicode

    © 2024 The ReScript Project

    Software and assets distribution powered by KeyCDN.

    About
    • Community
    • ReScript Association
    Find us on