fork download
  1. class TestPossessive {
  2. public static void main(String args[]) {
  3. String inputText = "123456789012";
  4. System.out.println("Input string: " + inputText);
  5. System.out.println("Expected: " + inputText.replaceFirst("(?:\\d{3,4}(?![89])){2,}+", ">$0<"));
  6. System.out.println("Outer possessive group: " + inputText.replaceFirst("(?>(?:\\d{3,4}(?![89])){2,})", ">$0<"));
  7. System.out.println("Inner possessive group: " + inputText.replaceFirst("(?>\\d{3,4}(?![89])){2,}", ">$0<"));
  8. System.out.println("Both: " + inputText.replaceFirst("(?>(?>\\d{3,4}(?![89])){2,})", ">$0<"));
  9.  
  10. System.out.println();
  11.  
  12. inputText = "aab";
  13. System.out.println("Input string: " + inputText);
  14. System.out.println("Expected: " + inputText.replaceFirst(".{1,3}+b", ">$0<"));
  15. System.out.println("Outer possessive group: " + inputText.replaceFirst("(?>.{1,3})b", ">$0<"));
  16. System.out.println("Inner possessive group: " + inputText.replaceFirst("(?>.){1,3}b", ">$0<"));
  17. System.out.println("Both: " + inputText.replaceFirst("(?>(?>.){1,3})b", ">$0<"));
  18. }
  19. }
Success #stdin #stdout 0.07s 380224KB
stdin
Standard input is empty
stdout
Input string: 123456789012
Expected: 1>23456789012<
Outer possessive group: >1234567890<12
Inner possessive group: 1>23456789012<
Both: 1>23456789012<

Input string: aab
Expected: aab
Outer possessive group: aab
Inner possessive group: >aab<
Both: aab