`

正则表达式练习: android 歌词解析lrc 转 txt 代码

 
阅读更多
//主要用到了java io 的基本知识 和 正则表达式
package com.su;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import android.widget.Toast;

public class LrcManager {
	
public void save(String content,String filePath) {//保存lrc
		
		filePath = "/sdcard/lrc1.txt";
	
		if(!filePath.endsWith(".txt") && !filePath.endsWith(".log")) 
    		filePath += ".txt";
		
		File file = new File(filePath); 
    	try {
    		OutputStream outstream = new FileOutputStream(file);
    		OutputStreamWriter out = new OutputStreamWriter(outstream);
    		out.write(content);
    		out.close();
    	} catch (java.io.IOException e) {
    		e.printStackTrace();
	    }
		
	}
    public String read(){//读取lrc
		String path = "/sdcard/lrc1.txt";
		String content="";
	    	//打开文件
	    	File file = new File(path);
	    	//如果path是传递过来的参数,可以做一个非目录的判断
	    	if (file.isDirectory()){
	    		//Toast.makeText(TestLrcActivity.this, "没有指定文本文件!", 1000).show();
	    	}
	    	else{
	    		try {
	    			InputStream instream = new FileInputStream(file); 
	    			if (instream != null) {
	    				InputStreamReader inputreader = new InputStreamReader(instream);
	    				BufferedReader buffreader = new BufferedReader(inputreader);
	    				String line;
					//分行读取
	    				while (( line = buffreader.readLine()) != null) {
	    					content += line + "\n";
	    				}				
	    			instream.close();
	    		    }
	    			
	    		}
	    		catch (java.io.FileNotFoundException e) {
	    			//Toast.makeText(TestLrcActivity.this, "文件不存在", Toast.LENGTH_SHORT).show();
	    		} catch (IOException e) {
	    			e.printStackTrace();
	    		}
	}
	    	return content;
	}
	
	public void deallrc(){//lrc to txt
		
		Pattern pattern = Pattern.compile("\\[\\d{2}:\\d{2}.\\d{2}\\]");//Pattern+Matcher类构成正则表达式
		File f1 = new File("/sdcard/lrc1.txt");
        File f2 = new File("/sdcard/lrc2.txt");
        BufferedReader reader1 = null;
        FileWriter write1 = null;
        try {
            reader1 = new BufferedReader(new FileReader(f1));

            write1 = new FileWriter(f2);

            String line = null;
      
            while ((line = reader1.readLine()) != null) {
            
                for (int i = 0; i < line.length(); i++) {
                	   
                      Matcher m=pattern.matcher(line);  
                      line = m.replaceAll("");
                      line = line.replaceAll("\\[offset:\\d{3}\\]","");//正则表达式使用replaceAll()方法
                      line = line.replace("ti","歌名");//替换字符串
                      line = line.replace("ar","歌手");
                      line = line.replace("al","专辑");
                      line = line.replace("by","Lrc歌词作者");
                      //line = line.replace("]","");
                      line = line.replace("url","歌词来源");
                      line = line.replace("null","");
                 }
                if (line!="\n"&&line!=null&&line!=""&&line!="null") {
                	 System.out.println(line);
                     write1.write(line+"\n");
				}
                
               
            }
        } catch (IOException e) {
            System.out.println("出现异常");
        } finally {
            try {
                reader1.close();
                write1.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
      }

        
	}
        
  }

}


分享到:
评论

相关推荐

    正则表达式综合练习

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,它在IT行业中扮演着重要的角色,尤其是在数据处理、文本分析、爬虫技术等领域。正则表达式通过使用预定义的字符集和特殊符号,可以高效地...

    正则表达式主要语法详解+编程知识+技术开发

    正则表达式语法:正则表达式主要语法详解+编程知识+技术开发; 正则表达式语法:正则表达式主要语法详解+编程知识+技术开发; 正则表达式语法:正则表达式主要语法详解+编程知识+技术开发; 正则表达式语法:正则...

    正则表达式教程:30分钟让你精通正则表达式语法 _

    正则表达式教程:30分钟让你精通正则表达式语法 _

    常用正则表达式大全.txt

    根据提供的文件信息,我们可以整理出一系列与正则表达式相关的知识点。这些知识点涵盖了从基本的数字验证到复杂的字符串匹配等多个方面。下面是详细的知识点总结: ### 基本概念 正则表达式是一种用于文本模式匹配...

    正则表达式练习题

    自己总结的部分javascript的正则表达式练习,希望可以帮助大家,未完整版,随后追加

    正则表达式学习资料以及练习项目代码很多

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。在Python编程语言中,正则表达式提供了强大的文本处理能力,使得开发者能够高效地处理...

    正则表达式转换工具

    - 文件搜索:在代码编辑器中,使用正则表达式快速查找和替换特定模式的文本。 - 数据清洗:在数据预处理阶段,正则表达式可以帮助剔除无关字符,整理数据格式。 - 网页抓取:在网络爬虫中,正则表达式用于提取...

    正则表达式练习器,练习正则表达式的好工具

    正则表达式练习器,练习正则表达式的好工具

    linux系统shell正则表达式-练习工具和教材

    三、正则表达式练习工具 1. Regex101(在线工具):提供实时测试和解释功能,便于学习和调试正则表达式。 2. RegExr(网页应用):同样具有实时测试和解析功能,还提供了代码生成器。 3. regexcrossword.com:以填字...

    使用Java正则表达式分析处理日志

    Java作为广泛使用的编程语言,提供了强大的正则表达式支持,使得我们能够有效地解析和处理日志文件。本篇将围绕“使用Java正则表达式分析处理日志”这一主题,探讨如何利用Java的正则表达式功能来提取、过滤和操作...

    PB实现的正则表达式

    在IT领域,正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它能够进行复杂的模式匹配、查找、替换等操作。在本话题中,我们将探讨如何使用PowerBuilder 11.5这一经典的开发环境来实现正则...

    正则表达式练习器VBScript版

    通过"正则表达式练习器VBScript版",用户不仅可以熟悉正则表达式的基本语法,还能掌握更高级的技巧,如正向和负向前瞻、预查后查以及复杂的分组。这个练习器特别适合初学者和进阶者,让他们在实际操作中不断巩固和...

    Android EditText 正则表达式 限制数字、字母、字符 输入 密码框

    例如,如果要限制输入为数字、小写字母和特殊字符,可以使用如下正则: ```java InputFilter filter = new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, ...

    正则表达式工具:JGsoft RegexBuddy v3.4.2 零售版(无需要注册激活)

    根据你使用的特定的编程语言自动在你的源代码中使用正则表达式代码片断。收集归档正则表达式例库以便将来重用。可以把RegexBuddy整合到你喜好的搜索和编辑工具里,以便快速使用。 RegexBuddy 使用 RegexBuddy 可以...

    正则表达式的网页练习器

    "正则表达式的网页练习器"是一个实用的在线工具,它帮助用户快速学习和实践正则表达式,通过交互式的方式检验正则表达式的正确性,从而在10秒内解决简单的正则编写问题。 一、正则表达式基本概念 1. 元字符:如 . ^...

    android IP和端口的验证方法 正则表达式

    更复杂的IPv6地址,包括压缩形式,可能需要更复杂的正则表达式,这通常超出了简单的正则表达式能力,可能需要额外的代码逻辑。 2. **端口号验证**: - 端口号是一个0-65535之间的整数。相应的正则表达式为: ```...

    JAVA正则表达式的应用

    JAVA正则表达式应用:任意输入一串字符串 如何输入exit退出程序;从输入的字符串中判断是否包含手机号码 正则表达式可以使用&quot; +86| 86 1 d{10}&quot; 如果包含请将其在控制台打印出来 否则输出不包含字符串 ...

    正则表达式练习器

    "正则表达式练习器"是一款帮助用户学习和熟练掌握正则表达式的软件工具,它通常会提供一系列练习题和测试用例,帮助用户通过实践来提升正则表达式的使用技巧。 正则表达式的基本元素包括: 1. **字符集**:包括...

    正则表达式测试工具C#版(src)

    本项目提供了一个C#编写的正则表达式测试工具,包含完整的源代码,可以帮助开发者调试和测试他们的正则表达式,支持查找和替换功能,并能直观地显示匹配结果。 1. **C#中的正则表达式基础** - `System.Text....

Global site tag (gtag.js) - Google Analytics