I have come up with a regex pattern to match a part of a Json value. But only PRCE engine is supporting this. I want to know the Java equalent of this regex.
Simplified version
cif:\K.*(?=(. ?){4})
Matches part of the value, leaving the last 4 characters.
cif:test1234
Matched value will be test
https://regex101.com/r/xV4ZNa/1
Note: I can only define the regex and the replace text. I don't have access to the Java code since it's handle by a propriotery log masking framework.
CodePudding user response:
You can use a lookbehind assertion instead:
(?<=cif:).*(?=(. ?){4})
Demo: https://regex101.com/r/xV4ZNa/3
CodePudding user response:
You can write simplify the pattern to:
(?<=cif:).*(?=....)
Explanation
(?<=cif:)
Positive lookbehind, assertcif:
to the left.*
Match 0 times any character without newlines(?=....)
Positive lookahead, assert 4 characters (which can include spaces)
See a regex demo.
If you don't want to match empty strings, then you can use .
instead
(?<=cif:). (?=....)