import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "([a-z]+\\.){2,}[a-z]+";
final String string = "# 🧩 ReVanced Patches\n\n"
+ "Official patches by ReVanced\n\n"
+ "## 📜 List of available patches\n\n"
+ "### 📦 `com.twitter.android`\n"
+ "<details>\n\n"
+ "| 💊 Patch | 📜 Description | 🏹 Target Version |\n"
+ "|:--------:|:--------------:|:-----------------:|\n"
+ "| `timeline-ads` | Removes ads from the Twitter timeline. | all |\n"
+ "</details>\n\n"
+ "### 📦 `com.reddit.frontpage`\n"
+ "<details>\n\n"
+ "| 💊 Patch | 📜 Description | 🏹 Target Version |\n"
+ "|:--------:|:--------------:|:-----------------:|\n"
+ "| `general-reddit-ads` | Removes general ads from the Reddit frontpage and subreddits. | all |\n"
+ "</details>\n\n"
+ "### 📦 `com.garzotto.pflotsh.ecmwf_a`\n"
+ "<details>\n\n"
+ "| 💊 Patch | 📜 Description | 🏹 Target Version |\n"
+ "|:--------:|:--------------:|:-----------------:|\n"
+ "| `pflotsh-ecmwf-subscription-unlock` | Unlocks all subscription features. | 3.5.4 |\n"
+ "</details>\n\n"
+ "### 📦 `com.google.android.apps.youtube.music`\n"
+ "<details>\n\n"
+ "| 💊 Patch | 📜 Description | 🏹 Target Version |\n"
+ "|:--------:|:--------------:|:-----------------:|\n"
+ "| `minimized-playback-music` | Enables minimized playback on Kids music. | 5.17.51 |\n"
+ "| `tasteBuilder-remover` | Removes the \"Tell us which artists you like\" card from the home screen. | 5.16.51 |\n"
+ "| `hide-get-premium` | Removes all \"Get Premium\" evidences from the avatar menu. | 5.17.51 |\n"
+ "| `compact-header` | Hides the music category bar at the top of the homepage. | 5.16.51 |\n"
+ "| `upgrade-button-remover` | Removes the upgrade tab from the pivot bar. | 5.17.51 |\n"
+ "| `background-play` | Enables playing music in the background. | 5.17.51 |\n"
+ "| `music-microg-support` | Allows YouTube Music ReVanced to run without root and under a different package name. | 5.17.51 |\n"
+ "| `music-video-ads` | Removes ads in the music player. | 5.17.51 |\n"
+ "| `codecs-unlock` | Adds more audio codec options. The new audio codecs usually result in better audio quality. | 5.17.51 |\n"
+ "| `exclusive-audio-playback` | Enables the option to play music without video. | 5.17.51 |\n"
+ "</details>\n\n"
+ "### 📦 `de.dwd.warnapp`\n"
+ "<details>\n\n"
+ "| 💊 Patch | 📜 Description | 🏹 Target Version |\n"
+ "|:--------:|:--------------:|:-----------------:|\n"
+ "| `promo-code-unlock` | Disables the validation of promo code. Any code will work to unlock all features. | all |\n"
+ "</details>\n\n"
+ "### 📦 `com.ss.android.ugc.trill`\n"
+ "<details>\n\n"
+ "| 💊 Patch | 📜 Description | 🏹 Target Version |\n"
+ "|:--------:|:--------------:|:-----------------:|\n"
+ "| `tiktok-ads` | Removes ads from TikTok. | all |\n"
+ "</details>\n\n"
+ "### 📦 `com.google.android.youtube`\n"
+ "<details>\n\n"
+ "| 💊 Patch | 📜 Description | 🏹 Target Version |\n"
+ "|:--------:|:--------------:|:-----------------:|\n"
+ "| `swipe-controls` | Adds volume and brightness swipe controls. | 17.29.34 |\n"
+ "| `seekbar-tapping` | Enables tap-to-seek on the seekbar of the video player. | 17.29.34 |\n"
+ "| `minimized-playback` | Enables minimized and background playback. | 17.29.34 |\n"
+ "| `amoled` | Enables pure black theme. | 17.29.34 |\n"
+ "| `disable-create-button` | Hides the create button in the navigation bar. | 17.29.34 |\n"
+ "| `hide-cast-button` | Hides the cast button in the video player. | all |\n"
+ "| `return-youtube-dislike` | Shows the dislike count of videos using the Return YouTube Dislike API. | 17.29.34 |\n"
+ "| `hide-autoplay-button` | Hides the autoplay button in the video player. | 17.29.34 |\n"
+ "| `premium-heading` | Shows premium branding on the home screen. | all |\n"
+ "| `custom-branding` | Changes the YouTube launcher icon and name to your choice (defaults to ReVanced). | all |\n"
+ "| `disable-fullscreen-panels` | Disables video description and comments panel in fullscreen view. | 17.29.34 |\n"
+ "| `old-quality-layout` | Enables the original quality flyout menu. | 17.29.34 |\n"
+ "| `hide-shorts-button` | Hides the shorts button on the navigation bar. | 17.29.34 |\n"
+ "| `hide-watermark` | Hides creator's watermarks on videos. | 17.29.34 |\n"
+ "| `sponsorblock` | Integrate SponsorBlock. | 17.29.34 |\n"
+ "| `enable-wide-searchbar` | Replaces the search icon with a wide search bar. This will hide the YouTube logo when active. | 17.29.34 |\n"
+ "| `tablet-mini-player` | Enables the tablet mini player layout. | 17.29.34 |\n"
+ "| `custom-video-buffer` | Lets you change the buffers of videos. | 17.29.34 |\n"
+ "| `always-autorepeat` | Always repeats the playing video again. | 17.29.34 |\n"
+ "| `microg-support` | Allows YouTube ReVanced to run without root and under a different package name with Vanced MicroG | 17.29.34 |\n"
+ "| `settings` | Adds settings for ReVanced to YouTube. | all |\n"
+ "| `enable-debugging` | Enables app debugging by patching the manifest file. | all |\n"
+ "| `custom-playback-speed` | Adds more video playback speed options. | 17.29.34 |\n"
+ "| `hdr-auto-brightness` | Makes the brightness of HDR videos follow the system default. | 17.29.34 |\n"
+ "| `remember-video-quality` | Adds the ability to remember the video quality you chose in the video quality flyout. | 17.29.34 |\n"
+ "| `video-ads` | Removes ads in the video player. | 17.29.34 |\n"
+ "| `general-ads` | Removes general ads. | 17.29.34 |\n"
+ "| `hide-infocard-suggestions` | Hides infocards in videos. | 17.29.34 |\n"
+ "</details>\n\n\n";
final Pattern pattern = Pattern.compile(regex);
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