import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "<script([\\s\\S]*?)>([\\s\\S]*?)<\\/script>";
final String string = "<template>\n"
+ " <div :class=\"classObj\" class=\"app-wrapper\">\n"
+ " <div v-if=\"device==='mobile'&&sidebar.opened\" class=\"drawer-bg\" @click=\"handleClickOutside\" />\n"
+ " <sidebar class=\"sidebar-container\" />\n"
+ " <div :class=\"{hasTagsView:needTagsView}\" class=\"main-container\">\n"
+ " <div :class=\"{'fixed-header':fixedHeader}\">\n"
+ " <navbar />\n"
+ " <tags-view v-if=\"needTagsView\" />\n"
+ " </div>\n"
+ " <app-main />\n"
+ " <right-panel v-if=\"showSettings\">\n"
+ " <settings />\n"
+ " </right-panel>\n"
+ " </div>\n"
+ " </div>\n"
+ "</template>\n\n"
+ "<script>\n"
+ "import RightPanel from '@/components/RightPanel'\n"
+ "import { AppMain, Navbar, Settings, Sidebar, TagsView } from './components'\n"
+ "import ResizeMixin from './mixin/ResizeHandler'\n"
+ "import { mapState } from 'vuex'\n\n"
+ "export default {\n"
+ " name: 'Layout',\n"
+ " components: {\n"
+ " AppMain,\n"
+ " Navbar,\n"
+ " RightPanel,\n"
+ " Settings,\n"
+ " Sidebar,\n"
+ " TagsView\n"
+ " },\n"
+ " mixins: [ResizeMixin],\n"
+ " computed: {\n"
+ " ...mapState({\n"
+ " sidebar: state => state.app.sidebar,\n"
+ " device: state => state.app.device,\n"
+ " showSettings: state => state.settings.showSettings,\n"
+ " needTagsView: state => state.settings.tagsView,\n"
+ " fixedHeader: state => state.settings.fixedHeader\n"
+ " }),\n"
+ " classObj() {\n"
+ " return {\n"
+ " hideSidebar: !this.sidebar.opened,\n"
+ " openSidebar: this.sidebar.opened,\n"
+ " withoutAnimation: this.sidebar.withoutAnimation,\n"
+ " mobile: this.device === 'mobile'\n"
+ " }\n"
+ " }\n"
+ " },\n"
+ " methods: {\n"
+ " handleClickOutside() {\n"
+ " this.$store.dispatch('app/closeSideBar', { withoutAnimation: false })\n"
+ " }\n"
+ " }\n"
+ "}\n"
+ "</script>\n\n"
+ "<style lang=\"scss\" scoped>\n"
+ " @import \"~@/styles/mixin.scss\";\n"
+ " @import \"~@/styles/variables.scss\";\n\n"
+ " .app-wrapper {\n"
+ " @include clearfix;\n"
+ " position: relative;\n"
+ " height: 100%;\n"
+ " width: 100%;\n\n"
+ " &.mobile.openSidebar {\n"
+ " position: fixed;\n"
+ " top: 0;\n"
+ " }\n"
+ " }\n\n"
+ " .drawer-bg {\n"
+ " background: #000;\n"
+ " opacity: 0.3;\n"
+ " width: 100%;\n"
+ " top: 0;\n"
+ " height: 100%;\n"
+ " position: absolute;\n"
+ " z-index: 999;\n"
+ " }\n\n"
+ " .fixed-header {\n"
+ " position: fixed;\n"
+ " top: 0;\n"
+ " right: 0;\n"
+ " z-index: 9;\n"
+ " width: calc(100% - #{$sideBarWidth});\n"
+ " transition: width 0.28s;\n"
+ " }\n\n"
+ " .hideSidebar .fixed-header {\n"
+ " width: calc(100% - 54px)\n"
+ " }\n\n"
+ " .mobile .fixed-header {\n"
+ " width: 100%;\n"
+ " }\n"
+ "</style>";
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