/* * [TestRegexFind.java] * * Summary: Finding with a Regex. * * Copyright: (c) 2009-2017 Roedy Green, Canadian Mind Products, http://mindprod.com * * Licence: This software may be copied and used freely for any purpose but military. * http://mindprod.com/contact/nonmil.html * * Requires: JDK 1.8+ * * Created with: JetBrains IntelliJ IDEA IDE http://www.jetbrains.com/idea/ * * Version History: * 1.0 2008-01-29 initial release * 1.1 2009-04-29 restore damaged code */ package com.mindprod.example; import java.util.regex.Matcher; import java.util.regex.Pattern; import static java.lang.System.*; /** * Finding with a Regex. *

* Use a regex to see repeated instances of a pattern embedded in a large string . * * @author Roedy Green, Canadian Mind Products * @version 1.1 2009-04-29 restore damaged code * @since 2008-01-29 */ public class TestRegexFind { /** * Regex pattern we look for embedded in big string. By default case-sensitive. */ private static final Pattern pattern = Pattern.compile( "([^<>]++)" ); /** * test harness * * @param args not used */ public static void main( String[] args ) { // find as many instances of text enclosed in .. // will print: //0 : orca //1 : orca //0 : dolphin //1 : dolphin final String lookIn = "orca dolphin then some unrelated junk"; final Matcher m = pattern.matcher( lookIn ); // Matchers are used both for matching and finding. while ( m.find() ) { final int gc = m.groupCount(); // group 0 is the whole pattern matched, // loops runs from from 0 to gc, not 0 to gc-1 as is traditional. for ( int i = 0; i <= gc; i++ ) { out.println( i + " : " + m.group( i ) ); } } } }