Language and package
python3.8, regex
Description
The inputs and wanted outputs are listed as following:
if (programWorkflowState.getTerminal(1, 2) == Boolean.TRUE) {
Want: programWorkflowState.getTerminal(1, 2)
and Boolean.TRUE
boolean ignore = !_isInStatic.isEmpty() && (_isInStatic.peek() == 3) && isAnonymous;
Want: _isInStatic.peek()
and 3
boolean b = (num1 * ( 2 + num2)) == value;
Want: (num1 * ( 2 + num2))
and value
My current regex
((?:\((?:[^\(\)]|(?R))*\)|[\w\.])+)\s*==\s*((?:\((?:[^\(\)]|(?R))*\)|[\w\.])+)
This pattern want to match \((?:[^\(\)]|(?R))*\)
or [\w\.]
on both side of "=="
Problem: It failed to match the recursive part (num1 * ( 2 + num2))
.
The explanation of the recursive pattern \((?:m|(?R))*\)
is here
But if I only use the recursive pattern, it succeeded to match (num1 * ( 2 + num2))
as the image shows.
What's the right regex to achieve my purpose?