import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^[\\p{Pd}\\xAD\\x{2212}]+";
final String string = "-s < intorstring >\n"
+ "-t < string >\n"
+ "(GTF.featureType)\n"
+ "Specify the feature type. Only rows which have the matched\n"
+ "feature type in the provided GTF annotation file will be included for read counting. ‘exon’ by default.\n"
+ "-T < int >\n"
+ "(nthreads)\n"
+ "Number of the threads. The value should be between 1 and\n"
+ "32. 1 by default.\n"
+ "-v Output version of the program.\n"
+ "−−byReadGroup\n"
+ "(byReadGroup)\n"
+ "Count reads by read group. Read group information is identified from the header of BAM/SAM input files and the generated count table will include counts for each group in each\n"
+ "library.\n"
+ "−−donotsort\n"
+ "(autosort)\n"
+ "If specified, paired end reads will not be re-ordered even if\n"
+ "reads from the same pair were found not to be next to each\n"
+ "other in the input.\n"
+ "−−extraAttributes\n"
+ "< string >\n"
+ "(GTF.attrType.extra)\n"
+ "Extract extra attribute types from the provided GTF annotation and include them in the counting output. These attribute\n"
+ "types will not be used to group features. If more than one attribute type is provided they should be separated by comma\n"
+ "(in Rsubread featureCounts its value is a character vector).\n"
+ "−−fraction\n"
+ "(fraction)\n"
+ "Assign fractional counts to features. This option must be used\n"
+ "together with ‘-M’ or ‘-O’ or both. When ‘-M’ is specified,\n"
+ "each reported alignment from a multi-mapping read (identified via ‘NH’ tag) will carry a count of 1/x, instead of 1 (one),\n"
+ "where x is the total number of alignments reported for the\n"
+ "same read. When ‘-O’ is specified, each overlapping feature\n"
+ "will receive a count of 1/y, where y is the total number of\n"
+ "features overlapping with the read. When both ‘-M’ and ‘-O’\n"
+ "are specified, each alignment will carry a count of 1/(x*y)";
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