import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?:cmdlet|get-alias)|(?:help.+?(?:cmdlet|get-alias))";
final String string = "PS M:\\> get-help\n"
+ "TOPIC\n"
+ " Get-Help\n\n"
+ "SHORT DESCRIPTION\n"
+ " Displays help about Windows PowerShell cmdlets and concepts.\n\n"
+ "LONG DESCRIPTION\n\n"
+ "SYNTAX\n"
+ " get-help {<CmdletName> | <TopicName>}\n"
+ " help {<CmdletName> | <TopicName>}\n"
+ " <CmdletName> -?\n\n"
+ " \"Get-help\" and \"-?\" display help on one page.\n"
+ " \"Help\" displays help on multiple pages.\n\n"
+ " Examples:\n"
+ " get-help get-process : Displays help about the Get-Process cmdlet.\n"
+ " get-help about_signing : Displays help about signing scripts.\n"
+ " help where-object : Displays help about the Where-Object cmdlet.\n"
+ " help about_foreach : Displays help about foreach loops in PowerShell.\n"
+ " set-service -? : Displays help about the Set-Service cmdlet.\n\n"
+ " You can use wildcard characters in the help commands (not with -?).\n"
+ " If multiple help topics match, PowerShell displays a list of matching\n"
+ " topics. If only one help topic matches, PowerShell displays the topic.\n\n"
+ " Examples:\n"
+ " get-help * : Displays all help topics.\n"
+ " get-help get-* : Displays topics that begin with get-.\n"
+ " help *object* : Displays topics with \"object\" in the name.\n"
+ " get-help about* : Displays all conceptual topics.\n\n\n"
+ " For information about wildcards, type:\n"
+ " get-help about_wildcard\n\n\n"
+ "REMARKS\n"
+ " To learn about Windows PowerShell, read the following help topics:\n"
+ " get-command : Gets information about cmdlets from the cmdlet code.\n"
+ " get-member : Gets the properties and methods of an object.\n"
+ " where-object : Filters object properties.\n"
+ " about_object : Explains the use of objects in Windows PowerShell.\n"
+ " about_remote : Tells how to run commands on remote computers.\n\n"
+ " Conceptual help files are named \"about_<topic>\", such as:\n"
+ " about_regular_expression.\n\n"
+ " The names of conceptual help files must be entered in English\n"
+ " even on non-English versions of Windows PowerShell.\n\n"
+ " The help commands also display the aliases of the cmdlets. These\n"
+ " are alternate names or nicknames that are often easier to type.\n"
+ " For example, the alias for the Invoke-Command cmdlet is \"remote\".\n\n"
+ " To get the aliases, type:\n\n"
+ " get-alias\n"
+ "PS M:\\>";
final Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
final Matcher matcher = pattern.matcher(string);
if (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
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 Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html