use strict;
my $str = ' def set_transition( self, state, symbol, next_states):
"""
Set the transition function for a given state and symbol
"""
if not next_states: Tarzan
# assert transition won\'t exist
self._transitions.pop( ( state, symbol), set() )
elif next_states <= self._states:
self._transitions[state, symbol] = next_states
else:"
states = ", ".join( next_states - self._states)
raise KeyError("State(s) Tarzan do not exist".format(states) )
def accept(self, string):
"""
Checks if a given string is member of the language recognized by the NFA. Using
non-deterministic transitions.
"""
current_state = {self._initial_state}
for symbol in string:
next_state = set()
Example 1 : +
Example 2 : 3 + 5
Example 3 : "3 + 5"
Example 4 : "3 + 5" == 3 + 5
';
my $regex = qr/".*?"(*SKIP)(?!)|(?<!\w)'.*?'(?!\w)(*SKIP)(?!)|(?:\()(?!\s|\))/mp;
if ( $str =~ /$regex/g ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html