1
我想从下面的示例CSS文件中获取类名。模式匹配从CSS文件中只获取类名
.labelIcon{
background-image: url(../images/eportal/Label-icon.png);
background-repeat: no-repeat;
height: 16px;
}
.appsCSS tr:nth-child(1){
border: 1px solid #AAAAAA;
border-top: none;
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #aae3fd));
vertical-align:top;
}
div.outer {
display: block; width:960px;height:1030px;position:relative;
}
.dijitButton {
font-family:'Times New Roman',Times,serif;
color:white;
}
.claro .dijitTitlePane{
background:-o-linear-gradient(bottom, #2789c6 5%, #79bcff 100%);
background:-moz-linear-gradient(center top, #2789c6 5%, #79bcff 100%) !important;
background-color:#2789c6 !important;
}
input[type="text"]:focus,
select:focus,
textarea:focus{
background-color: #f6fcfe;
}
#eGrid {
width: 70em;
height: 30em;
}
.cssmenu ul,
.cssmenu li, {
margin: 0;
padding: 0;
position: relative;
}
* {
border: 0;
font-family: inherit;
}
:focus {
outline: 0;
}
ul {
list-style-type: none;
}
#login .controlbar {
padding: 10px;
font-weight: bold;
}
我想从上面的,labelIcon
和dijitButton
,并且具有前缀"."
和后缀"{"
我想下面的正则表达式的代码,但没有得到正确的输出名称..
只有这些类名String dirFile=workspace + File.separatorChar + projectName + File.separatorChar +Constants.WEBCONTENT + File.separatorChar +"style";
final File folder = new File(dirFile);
if(folder.isDirectory()){
String result = listFilesForFolder(folder,workspace,projectName);
if(result != ""){
Pattern pattern = Pattern.compile("(\\.)(.*?)(\\{)",Pattern.DOTALL | Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
Matcher matcher = pattern.matcher(result);
String classNames="";
while(matcher.find())
{
classNames+=matcher.group(2)+"*";
}
System.out.println("class: "+classNames);
}else{
return;
}
}
private String listFilesForFolder(File folder, String workspace, String projectName) {
String allLines = "";
for (final File fileEntry : folder.listFiles()) {
if (fileEntry.isDirectory()) {
listFilesForFolder(fileEntry,workspace,projectName);
} else {
String FileName = fileEntry.getName();
String filePath=workspace + File.separatorChar + projectName + File.separatorChar +Constants.WEBCONTENT + File.separatorChar +"style"+ File.separatorChar+FileName;
File f = new File(filePath);
if(f.length() > 0){
String strLine;
FileInputStream fstream = null;
try {
fstream = new FileInputStream(filePath);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// use DataInputStream to read binary NOT text
// DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
try {
while ((strLine = br.readLine()) != null){
allLines += strLine.trim() +"\n";
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("File exist with Content "+allLines);
}
}
}
return allLines;
}
您可以使用'Search' /'Replace'在大多数IDE的正则表达式,为什么写这么多的代码?!在IDE中测试你的CSS文件模式,你当然也可以在你的CSS文件/文件夹中进行文件搜索.. –
仅供参考,你不需要使用DataInputStream;只需将FileInputStream对象('fstream')直接传递给InputStreamReader构造函数即可。 DataInputStream和DataOutputStream是专用流,用于读取和写入某些种类的二进制数据。赔率是你永远不会有合法需要使用它们。 –