加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 用于获取特定数据的正则表达式

发布时间:2020-12-15 08:48:42 所属栏目:Java 来源:网络整理
导读:我有一个可以作为文本框读取的文件,我想只获得之后可用的数据 start=”n= and end=”n= ?xml version="1.0" encoding="utf-8"? !DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 1.0//EN" "SMIL10.dtd" head /head body audio start="n=10.815s" end="n=19.914s"/ /b
我有一个可以作为文本框读取的文件,我想只获得之后可用的数据

start=”n= and end=”n=

<?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 1.0//EN" "SMIL10.dtd">
 <head>
 </head>
     <body>
            <audio start="n=10.815s" end="n=19.914s"/>
 </body>
</xml>

我尝试过以下操作:

String startTime = readString.replaceAll(".*start="n=|s.*","").trim();
   String endTime = readString.replaceAll(".*end="n=|s.*","").trim();
   Log.e("Start Time is :",startTime);
   Log.e("endTime Time is :",endTime);

它工作正常,只是获取开始时间和结束时间,但它也显示<?xml标签. 我该如何解决?

解决方法

请在Java中找到下面的解决方案,这适用于包含该字符串的任何数据

<audio start="n=........" end="n=......." />

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
public static void main(String[] args) 
{
String inputData1 = "<?xml version="1.0" encoding="utf-8"?>"+
                        "<!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 1.0//EN" "SMIL10.dtd">"
                        + "<head>" 
                        + "</head>" 
                        + "<body>"
                        + "<audio start="n=10.815s" end="n=19.914s"/>"
                        + "<sometag> <audio start="n=10.815s" end="n=20.914s"/> </sometag>"
                        + "</body>"
                        + "</xml>";

    String inputData2 = "some data goes here with or without tags; <audio start="n=10.815s" end="n=20.914s"/>; askjdhfla ";

    Pattern pattern = Pattern.compile("<audio[^>]*starts*=s*"ns*=s*([^"]*)"[^>]*end="ns*=s*([^"]*)"[^>]*>");
    Matcher matcher = pattern.matcher(inputData1);

    while(matcher.find()){
        System.out.println("start="n="+matcher.group(1)+",& end="n="+matcher.group(2)+"");
    }

}
}

Output For InputData1:
start="n=10.815s,& end="n=19.914s
start="n=10.815s,& end="n=20.914s


Output For InputData2:
start="n=10.815s,& end="n=20.914s

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读