import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?:(?<=@import\\s*(['\"]|url\\()\\s*)((?:\\S|\\\\\\1)+)\\s*(?:\\1|\\))\\s*\\)?\\s?(.*?);)";
final String string = "# Drupal core/tests/Drupal/Tests/Core/Asset/css_test_files/css_input_with_import.css\n"
+ "@import \"import1.css\";\n"
+ "@import \"import2.css\";\n"
+ "@import url(\"http://example.com/style.css\");\n"
+ "@import url(\"//example.com/style.css\");\n\n"
+ "# Examples from https://developer.mozilla.org/en-US/docs/Web/CSS/%40import\n"
+ "@import url(\"finep;rint.css\") print;\n"
+ "@import url(\"bluish.;css\") projection, tv;\n"
+ "@import 'cust;om.css';\n"
+ "@import url(\"chrome://communi;cator/skin/\");\n"
+ "@import \"common.css\" screen, projection;\n"
+ "@import url('landscape.css') screen and (orientation:landscape);\n\n"
+ "# Examples using htmlentities\n"
+ "@import 'https://fonts.googleapis.com/css?family=Sedgwick+Ave+Display&subset=latin-ext';\n"
+ "@import \"https://fonts.googleapis.com/css?family=Sedgwick+Ave+Display&subset=latin-ext\" ;\n"
+ "@import url(\"https://fonts.googleapis.com/css?family=Sedgwick+Ave+Display&subset=latin-ext\");\n"
+ "@import url(\"https://fonts.googleapis.com/css?family=Sedgwick+Ave+Display&subset=latin-ext\") tv;\n"
+ "@import url(\"https://fonts.googleapis.com/css?family=Sedgwick+Ave+Display&subset=latin-ext\") only screen and (max-width:639px) and (orientation: portrait);\n\n"
+ "# Additional\n"
+ "@import \"cu'st;om.css\";\n"
+ "@import \"cu\\\"st;om.css\";\n"
+ "@import \"cu\\22st;om.css\";\n"
+ "@import 'cus\\'t;om.css';\n"
+ "@import 'cus\\27t;om.css' ;\n"
+ "@import 'cus(t;om.css' ;\n"
+ "@import 'cus)t;om.css';\n"
+ "@import 'cus(t);om.css';\n\n"
+ "@import url( \" http://user:pass@example.com/c'u(s)t;o\\\"m.css \" ) ;\n"
+ "@import url( ' http://user:pass@example.com/c\"u(s)t;o\\'m.css ' ) ;\n"
+ "@import url( http://user:pass@example.com/c\\'u\\(s\\)t;om.css ) ;\n\n\n"
+ "# Inline\n"
+ "@import \"cu'st;om.css\"; @import \"cu\\\"st;om.css\"; .my-class { display: block; }\n\n"
+ "@import \"cu'st;om.css\";@import url( \" http://user:pass@example.com/c'u(s)t;o\\\"m.css \" ) ;.some-class { color: rgba(0, 0, 0); }@import url( http://user:pass@example.com/c\\'u\\(s\\)t;om.css ) ;.some-class { color: rgba(0, 0, 0); }\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