@Override public String toString(final int level) { final StringBuilder value = new StringBuilder(super.toString(level)); value.append("\n type: " + typeToString()); value.append("\n regNum: " + regNum); value.append("\n option: " + Option.toString(option)); value.append("\n target: " + pad(target, level + 1)); value.append("\n callAddr: " + callAddr); value.append("\n minLength: " + minLength); value.append("\n maxLength: " + maxLength); value.append("\n charLength: " + charLength); value.append("\n optCount: " + optCount); return value.toString(); }
/** * Construct a Regular expression from the given {@code pattern} and {@code flags} strings. * * @param pattern RegExp pattern string * @param flags RegExp flag string * @throws ParserException if flags is invalid or pattern string has syntax error. */ public JoniRegExp(final String pattern, final String flags) throws ParserException { super(pattern, flags); int option = Option.SINGLELINE; if (this.isIgnoreCase()) { option |= Option.IGNORECASE; } if (this.isMultiline()) { option &= ~Option.SINGLELINE; option |= Option.NEGATE_SINGLELINE; } try { RegExpScanner parsed; try { parsed = RegExpScanner.scan(pattern); } catch (final PatternSyntaxException e) { // refine the exception with a better syntax error, if this // passes, just rethrow what we have Pattern.compile(pattern, 0); throw e; } if (parsed != null) { final char[] javaPattern = parsed.getJavaPattern().toCharArray(); this.regex = new Regex(javaPattern, 0, javaPattern.length, option, Syntax.JAVASCRIPT); this.groupsInNegativeLookahead = parsed.getGroupsInNegativeLookahead(); } } catch (final PatternSyntaxException | JOniException e2) { throwParserException("syntax", e2.getMessage()); } }
@Override public String toString(final int level) { final StringBuilder value = new StringBuilder(super.toString(level)); value.append("\n type: ").append(typeToString()); value.append("\n regNum: ").append(regNum); value.append("\n option: ").append(Option.toString(option)); value.append("\n target: ").append(pad(target, level + 1)); value.append("\n callAddr: ").append(callAddr); value.append("\n minLength: ").append(minLength); value.append("\n maxLength: ").append(maxLength); value.append("\n charLength: ").append(charLength); value.append("\n optCount: ").append(optCount); return value.toString(); }
@Override public String toString(int level) { StringBuilder value = new StringBuilder(super.toString(level)); value.append("\n type: " + typeToString()); value.append("\n regNum: " + regNum); value.append("\n option: " + Option.toString(option)); value.append("\n target: " + pad(target, level + 1)); value.append("\n callAddr: " + callAddr); value.append("\n minLength: " + minLength); value.append("\n maxLength: " + maxLength); value.append("\n charLength: " + charLength); value.append("\n optCount: " + optCount); return value.toString(); }
/** * Construct a Regular expression from the given {@code pattern} and {@code flags} strings. * * @param pattern RegExp pattern string * @param flags RegExp flag string * @throws ParserException if flags is invalid or pattern string has syntax error. */ public JoniRegExp(final String pattern, final String flags) throws ParserException { super(pattern, flags); int option = Option.SINGLELINE; if (this.isIgnoreCase()) { option |= Option.IGNORECASE; } if (this.isMultiline()) { option &= ~Option.SINGLELINE; option |= Option.NEGATE_SINGLELINE; } try { RegExpScanner parsed; try { parsed = RegExpScanner.scan(pattern); } catch (final PatternSyntaxException e) { // refine the exception with a better syntax error, if this // passes, just rethrow what we have Pattern.compile(pattern, 0); throw e; } if (parsed != null) { char[] javaPattern = parsed.getJavaPattern().toCharArray(); this.regex = new Regex(javaPattern, 0, javaPattern.length, option, Syntax.JAVASCRIPT); this.groupsInNegativeLookahead = parsed.getGroupsInNegativeLookahead(); } } catch (final PatternSyntaxException | JOniException e2) { throwParserException("syntax", e2.getMessage()); } }
@Override public boolean search(final int start) { return joniMatcher.search(start, input.length(), Option.NONE) > -1; }