import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = ".*\\((.|\\n)+\\)\\s*\\{";
final String string = "# @summary Manages the puppeteer monitor service.\n"
+ "# \n"
+ "# @param logon_domain\n"
+ "# The service will logon using this domain. Specify '.' for a local account.\n"
+ "#\n"
+ "# @param logon_name\n"
+ "# The service will logon using this user name.\n"
+ "#\n"
+ "# @param logon_password\n"
+ "# The service will logon using this password.\n"
+ "#\n"
+ "# @param ensure\n"
+ "# Whether or not install the puppeteermon service.\n"
+ "#\n"
+ "# @param source\n"
+ "# Where to obtain the puppeteermon service executable from.\n"
+ "#\n"
+ "# @param state\n"
+ "# Ensure the puppeteermon service is in the given `state`.\n"
+ "#\n"
+ "# @param startup\n"
+ "# How to start the puppeteermon service.\n"
+ "#\n"
+ "# @param version\n"
+ "# The version of the puppeteermon service that should be installed.\n"
+ "#\n"
+ "class profile::ct::puppeteermon(\n"
+ " String $logon_domain = \"${hiera('builder_domain', '.')}\",\n"
+ " String $logon_name = \"${hiera('builder_user', 'SYSTEM')}\",\n"
+ " String $logon_password = \"${hiera('builder_passwd', '')}\",\n"
+ " String $cooldown = '10m',\n"
+ " String $min_exec_time = '1m15s',\n"
+ " Enum[absent, present] $ensure = present,\n"
+ " String $source = 'https://repo.ct.activision.com/repository/puppet/puppeteermon/<%= ::osfamily %>/puppeteermon-<%= version %>',\n"
+ " Enum['running', 'stopped'] $state = 'running',\n\n"
+ " Enum['automatic', 'manual', 'disabled']\n"
+ " $startup = 'automatic',\n\n"
+ " String $version = '2.0.11',\n"
+ ") {\n"
+ " include profile::ct::puppeteer\n\n"
+ " if $::osfamily == 'windows' {\n"
+ " # Non-configurable class parameters\n"
+ " $basedir = 'C:/ProgramData/puppeteermon'\n"
+ " $os_source = regsubst($source, '<%= ::osfamily %>', 'windows', 'G')\n"
+ " $puppeteer_os_source = regsubst($profile::ct::puppeteer::source, '<%= ::osfamily %>', 'windows', 'G')\n"
+ " $puppeteer_fetch_source = regsubst($puppeteer_os_source, '<%= version %>', \"${profile::ct::puppeteer::version}.exe\", 'G')\n"
+ " $puppeteer_recovery_source = regsubst($puppeteer_os_source, '<%= version %>', 'recovery.exe', 'G')\n\n"
+ " profile::ct::puppeteer::config { \"${profile::ct::puppeteer::basedir}/puppeteer.conf\":\n"
+ " ensure => $ensure,\n"
+ " compass_master_url => $profile::ct::puppeteer::compass_master_url,\n"
+ " runinterval => $profile::ct::puppeteer::runinterval,\n"
+ " splay => $profile::ct::puppeteer::splay,\n"
+ " version => $profile::ct::puppeteer::version,\n"
+ " }\n"
+ " -> profile::ct::puppeteermon::config { \"${basedir}/puppeteermon.conf\":\n"
+ " ensure => $ensure,\n"
+ " cooldown => $cooldown,\n"
+ " fetch_url => $puppeteer_fetch_source,\n"
+ " download_dir => \"${profile::ct::puppeteer::basedir}/fetch\",\n"
+ " command => \"${profile::ct::puppeteer::basedir}/running/puppeteer.exe\",\n"
+ " }\n"
+ " profile::ct::puppeteer::config_new { \"${profile::ct::puppeteer::basedir}/puppeteer.yaml\":\n"
+ " ensure => $ensure,\n"
+ " compass_master_url => $profile::ct::puppeteer::compass_master_url,\n"
+ " compass_polling_interval => $profile::ct::puppeteer::compass_polling_interval,\n"
+ " runinterval => $profile::ct::puppeteer::runinterval,\n"
+ " last_run_summary => $profile::ct::puppeteer::last_run_summary,\n"
+ " splay => $profile::ct::puppeteer::splay,\n"
+ " version => $profile::ct::puppeteer::version,\n"
+ " agent_config_platform => $profile::ct::puppeteer::agent_config_platform,\n"
+ " }\n"
+ " -> profile::ct::puppeteermon::config_new { \"${basedir}/puppeteermon.yaml\":\n"
+ " ensure => $ensure,\n"
+ " cooldown => $cooldown,\n"
+ " fetch_url => $puppeteer_fetch_source,\n"
+ " recovery_url => $puppeteer_recovery_source,\n"
+ " download_dir => \"${profile::ct::puppeteer::basedir}/stage\",\n"
+ " command => \"${profile::ct::puppeteer::basedir}/running/puppeteer.exe\",\n"
+ " min_exec_time => $min_exec_time\n"
+ " }\n"
+ " -> wservice { 'puppeteermon':\n"
+ " ensure => $ensure,\n"
+ " state => $state,\n"
+ " startup => $startup,\n"
+ " source => regsubst($os_source, '<%= version %>', \"${version}.tar.gz\", 'G'),\n"
+ " version => $version,\n"
+ " path => \"${basedir}/puppeteermon.exe\",\n"
+ " account => \"${logon_domain}\\\\${logon_name}\",\n"
+ " password => $logon_password,\n"
+ " registercmd => ['<%= path %>', 'install'],\n"
+ " unregistercmd => ['<%= path %>', 'uninstall'],\n"
+ " }\n\n"
+ " if $ensure == present {\n"
+ " $enable = $startup ? { 'automatic' => 'true', 'manual' => 'manual', default => 'false' }\n"
+ " service { 'puppeteermon':\n"
+ " ensure => $state,\n"
+ " enable => $enable,\n"
+ " require => Wservice['puppeteermon']\n"
+ " }\n"
+ " }\n"
+ " } elsif $::osfamily == 'Darwin' {\n"
+ " # Non-configurable class parameters\n"
+ " $basedir = '/opt/puppeteermon'\n"
+ " $os_source = regsubst($source, '<%= ::osfamily %>', 'darwin', 'G')\n"
+ " $puppeteer_os_source = regsubst($profile::ct::puppeteer::source, '<%= ::osfamily %>', 'darwin', 'G')\n"
+ " $puppeteer_fetch_source = regsubst($puppeteer_os_source, '<%= version %>', $profile::ct::puppeteer::version, 'G')\n"
+ " $puppeteer_recovery_source = regsubst($puppeteer_os_source, '<%= version %>', 'recovery', 'G')\n\n"
+ " profile::ct::puppeteer::config_new { \"${profile::ct::puppeteer::basedir}/puppeteer.yaml\":\n"
+ " ensure => $ensure,\n"
+ " compass_master_url => $profile::ct::puppeteer::compass_master_url,\n"
+ " compass_polling_interval => $profile::ct::puppeteer::compass_polling_interval,\n"
+ " runinterval => $profile::ct::puppeteer::runinterval,\n"
+ " last_run_summary => $profile::ct::puppeteer::last_run_summary,\n"
+ " splay => $profile::ct::puppeteer::splay,\n"
+ " version => $profile::ct::puppeteer::version,\n"
+ " agent_config_platform => $profile::ct::puppeteer::agent_config_platform,\n"
+ " }\n"
+ " -> profile::ct::puppeteermon::config_new { \"${basedir}/puppeteermon.yaml\":\n"
+ " ensure => $ensure,\n"
+ " cooldown => $cooldown,\n"
+ " fetch_url => $puppeteer_fetch_source,\n"
+ " recovery_url => $puppeteer_recovery_source,\n"
+ " download_dir => \"${profile::ct::puppeteer::basedir}/stage\",\n"
+ " command => \"${profile::ct::puppeteer::basedir}/running/puppeteer\",\n"
+ " min_exec_time => $min_exec_time\n"
+ " }\n"
+ " -> puppeteermon { '/opt/puppeteermon/puppeteermon':\n"
+ " ensure => $ensure,\n"
+ " version => $version,\n"
+ " source => regsubst($os_source, '<%= version %>', $version, 'G'),\n"
+ " }\n\n"
+ " if $ensure == present {\n"
+ " $enable = $startup ? {'automatic' => 'true', 'manual' => 'manual', default => 'false' }\n"
+ " service { 'puppeteermon':\n"
+ " ensure => $state,\n"
+ " enable => $enable,\n"
+ " provider => 'launchd',\n"
+ " require => Puppeteermon['/opt/puppeteermon/puppeteermon']\n"
+ " }\n"
+ " }\n"
+ " } else {\n"
+ " # Non-configurable class parameters\n"
+ " $basedir = '/opt/puppeteermon'\n"
+ " $os_source = regsubst($source, '<%= ::osfamily %>', 'linux', 'G')\n"
+ " $puppeteer_os_source = regsubst($profile::ct::puppeteer::source, '<%= ::osfamily %>', 'linux', 'G')\n"
+ " $puppeteer_fetch_source = regsubst($puppeteer_os_source, '<%= version %>', $profile::ct::puppeteer::version, 'G')\n"
+ " $puppeteer_recovery_source = regsubst($puppeteer_os_source, '<%= version %>', 'recovery', 'G')\n\n"
+ " profile::ct::puppeteer::config_new { \"${profile::ct::puppeteer::basedir}/puppeteer.yaml\":\n"
+ " ensure => $ensure,\n"
+ " compass_master_url => $profile::ct::puppeteer::compass_master_url,\n"
+ " compass_polling_interval => $profile::ct::puppeteer::compass_polling_interval,\n"
+ " runinterval => $profile::ct::puppeteer::runinterval,\n"
+ " last_run_summary => $profile::ct::puppeteer::last_run_summary,\n"
+ " splay => $profile::ct::puppeteer::splay,\n"
+ " version => $profile::ct::puppeteer::version,\n"
+ " agent_config_platform => $profile::ct::puppeteer::agent_config_platform,\n"
+ " }\n"
+ " -> profile::ct::puppeteermon::config_new { \"${basedir}/puppeteermon.yaml\":\n"
+ " ensure => $ensure,\n"
+ " cooldown => $cooldown,\n"
+ " fetch_url => $puppeteer_fetch_source,\n"
+ " recovery_url => $puppeteer_recovery_source,\n"
+ " download_dir => \"${profile::ct::puppeteer::basedir}/stage\",\n"
+ " command => \"${profile::ct::puppeteer::basedir}/running/puppeteer\",\n"
+ " min_exec_time => $min_exec_time\n"
+ " }\n"
+ " -> puppeteermon { '/opt/puppeteermon/puppeteermon':\n"
+ " ensure => $ensure,\n"
+ " version => $version,\n"
+ " source => regsubst($os_source, '<%= version %>', $version, 'G'),\n"
+ " }\n\n"
+ " if $ensure == present {\n"
+ " $enable = $startup ? {'automatic' => 'true', 'manual' => 'manual', default => 'false' }\n"
+ " service { 'puppeteermon':\n"
+ " ensure => $state,\n"
+ " enable => $enable,\n"
+ " provider => 'systemd',\n"
+ " require => Puppeteermon['/opt/puppeteermon/puppeteermon']\n"
+ " }\n"
+ " }\n"
+ " }\n"
+ "}\n";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (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