Class SwiftPattern

  • All Implemented Interfaces:
    Serializable

    public final class SwiftPattern
    extends Object
    implements Serializable
    A partial compiled representation of a SWIFT expression (a kind of regular expression) as used in many SWIFT documents (for instance the IBAN registry document).

    This class internally uses a Pattern by transforming the SWIFT expression to a traditional regular expression. As a result the SwiftPattern API is similar to the Pattern API.

    The SwiftPattern class partially supports the SWIFT expression by using the following constructions :

    Character representations
    ndigits (numeric characters 0 to 9 only)
    aupper case letters (alphabetic characters A-Z only)
    cupper and lower case alphanumeric characters (A-Z, a-z and 0-9)
    eblank space
    Length indications
    nn!fixed length
    nnmaximum length

    Here are some examples of SWIFT expressions that are supported by this SwiftPattern :

    • 4!n (corresponding regex [0-9]{4}) : four consecutive digits
    • 4!a3c (corresponding regex [A-Za-z0-9]{4}[A-Z]{1,3}) : four consecutive upper or lower case alphanumeric characters followed by one to three upper case letters
    • 2e4!a (corresponding regex [ ]{1,2}) : one or two consecutive spaces followed by four consecutive upper case letters
    This class has some limitations in order to prevent stack overflows, as explained in Regular expressions should not overflow the stack. The maximum supported length is set to 999 and the maximum number of groups (such as 4!n) is 1000. these limitations are far above anything that can be seen in SWIFT documents and should be sufficient.

    Instances of this class are immutable and are safe for use by multiple concurrent threads.

    Since:
    1.0
    Author:
    Marc Wrobel
    See Also:
    Pattern, Serialized Form
    • Method Detail

      • compile

        public static SwiftPattern compile​(String expression)
        Compiles the given SWIFT expression into a SwiftPattern.
        Parameters:
        expression - The expression to be compiled
        Returns:
        a SwiftPattern representing the given expression
        Throws:
        SwiftPatternSyntaxException - If the expression's syntax is invalid.
      • matcher

        public Matcher matcher​(CharSequence input)
        Creates a matcher that will match the given input against this pattern.
        Parameters:
        input - The character sequence to be matched
        Returns:
        A new matcher for this pattern.
      • getExpression

        public String getExpression()
        Returns the SWIFT expression from which this pattern was compiled.
        Returns:
        a non-null string.
      • getEquivalentJavaPattern

        public Pattern getEquivalentJavaPattern()
        Returns the java Pattern build using the SWIFT expression.
        Returns:
        a non-null pattern.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object