标签: matcher

在html标签之间获取文本

可能重复:RegEx匹配HTML标记并提取文本

我需要在html标签之间得到文本<p></p>或者其他什么.我的模式就是这个

Pattern pText = Pattern.compile(">([^>|^<]*?)<");
Run Code Online (Sandbox Code Playgroud)

任何人都知道一些更好的模式,因为这个不是很有用.我需要它来索引来自网页的内容.

谢谢

java regex matcher

0
推荐指数
1
解决办法
2400
查看次数

正则表达式 - 贪心量词

我真的在努力解决这个问题:

import java.util.regex.*;    
class Regex2 {    
    public static void main(String[] args) {    
        Pattern p = Pattern.compile(args[0]);    
        Matcher m = p.matcher(args[1]);    
        boolean b = false;    
        while(b = m.find()) {    
            System.out.print(m.start() + m.group());    
        }    
    }
}  
Run Code Online (Sandbox Code Playgroud)

使用以下命令运行上述程序时:

java Regex2 "\d*" ab34ef 
Run Code Online (Sandbox Code Playgroud)

它输出01234456.我真的不明白这个输出.考虑每个字符的以下索引:

a b 3 4 e f
^ ^ ^ ^ ^ ^
0 1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)

输出应该不是0123445吗?

我一直在阅读,看起来RegEx引擎也将读取字符串的结尾,但我只是不明白.如果有人可以提供有关如何获得该结果的分步指南,将不胜感激.即如何找到每个数字.

java regex matcher

0
推荐指数
1
解决办法
531
查看次数

如何用正则表达式检测奇数长度01的序列

我想匹配具有奇数长度的01的正则表达式字符串.例:"0","001","111","11111" etc.

这个想法是奇数长度的序列是0或1,然后是0或1对.但我的正则表达式似乎不起作用.我做的:

String regex = "[0-1]{1}[[0-1]{2}]{0,}";
    String txt = "01";
    Pattern p = Pattern.compile(regex);
    Matcher m = p.matcher(txt);

        System.out.println(m.matches());
Run Code Online (Sandbox Code Playgroud)

java regex matcher

0
推荐指数
1
解决办法
290
查看次数

多次使用两个字符串之间的正则表达式

我有一个类似的字符串

[{"id":"9","label":"P","price":"0","oldPrice":"0","products":["606","610","614","618","622","625","629"]},{"id":"8","label":"M","price":"0","oldPrice":"0","products":["607","611","615","619","626","630"]},{"id":"7","label":"G","price":"0","oldPrice":"0","products":["609","613","617","621","624","628","632"]},{"id":"36","label":"GG","price":"0","oldPrice":"0","products":["608","612","616","620","623","627","631"]},{"id":"152","label":"XGG","price":"0","oldPrice":"0","products":["3713","6577","6578","6579","6580","6581","6582"]}]
Run Code Online (Sandbox Code Playgroud)

我需要的是标签值:P,M,G,GG,XGG.我试图在标签和逗号之间获取所有内容,但它不起作用

"(标签)(.*)(,)"

java regex string matcher

0
推荐指数
1
解决办法
919
查看次数

正则表达式不匹配数据但正则表达式确认有效

我有以下Java程序,它抓取日期时间字符串并在多个正则表达式测试站点中进行测试,以检查它们是否确实有效,他们这样做.

private static final Pattern MATCH_DATE_TIME = Pattern.compile("<span id=\"lblMatchTime\" style=\"padding: 0px;\">([\\d+/ GMT:]+)</span>");
Run Code Online (Sandbox Code Playgroud)

未转义的表达版本

<span id="lblMatchTime" style="padding: 0px;">([\d/ :GMT]+)</span>
Run Code Online (Sandbox Code Playgroud)

以及我在上面测试过的网站.

有以下数据

                    <div style="width: 30%; text-align: center; display: inline-block;">                             <span>                                 Time  :                             </span>                             <span id="lblMatchTime" style="padding: 0px;">05/28/2014 14:16:21 GMT</span>                         </div>                         <div style="width: 30%; text-align: center; display: inline-block;">                             <span>duration:                             </span>                             <span id="lblMatchDuration" style="padding: 0px;">50</span>                             <span>                                 minutes                             </span>                         </div>                     </div>
Run Code Online (Sandbox Code Playgroud)

具有未转义版本的上述两个网站都正确匹配下面的预期数据

<span id="lblMatchTime" style="padding: 0px;">05/28/2014 14:16:21 GMT</span>  //the matched data
05/28/2014 14:16:21 GMT //$1 extracted data
Run Code Online (Sandbox Code Playgroud)

虽然上述两个站点都成功匹配并提取了我的程序没有的数据.

这是我的程序的代码(最小代码示例)

private static final Pattern …
Run Code Online (Sandbox Code Playgroud)

java regex matcher

0
推荐指数
1
解决办法
112
查看次数

用Java替换QueryString中的Param

假设我有一个url param,token=1234235asdjaklj231k209a&name=sam&firname=Mahan 我怎样才能用新的替换令牌的值?我以前用模式和匹配器做了类似的事情,但我现在不记得了,但我知道有办法这样做更新:令牌可以包含任何字母,但提前感谢

java string design-patterns matcher

0
推荐指数
1
解决办法
3110
查看次数

Java匹配器如何根据其值动态替换组

对于快速示例,我有以下字符串:

String s = "hey.there.man.${a.a}crazy$carl${a.b}jones
Run Code Online (Sandbox Code Playgroud)

我也有以下方法:

private String resolveMatchedValue(String s) {
    if(s.equals("a.a")) {
           return "A";
    else if(s.equals("a.b")) { 
           return "Wallet";
    else if(.....
    ....
 }
Run Code Online (Sandbox Code Playgroud)

我的模式是

 Pattern pattern = Pattern.compile("\\$\\{(.*?)\\}");
Run Code Online (Sandbox Code Playgroud)

因此,对于匹配$ {.*}的s中的每个子字符串,我希望调用resolveMatchedValue方法,并且应该替换它.理想情况下,在正则表达式过程之后应该如此

 s = "hey.there.man.Acrazy$carl$Walletjones
Run Code Online (Sandbox Code Playgroud)

我已经查看了类似的解决方案,但没有根据匹配的值动态替换匹配的值,并且无法使其工作

编辑:使用java8

java regex matcher java-8

0
推荐指数
1
解决办法
386
查看次数

执行的字符串值与硬编码值不匹配

在我的帮助器类中,我从日志文件中提取键字符串.在那里我搜索一个日期和子串的文本.问题是当我包括该日期包括使用java日期的短语时,硬编码的日期以不同的方式起作用.

代码段:

BufferedReader br = new BufferedReader(new FileReader("/developer.log"));
        StringBuilder sb = new StringBuilder();
        String line = br.readLine();

        while (line != null) {
            sb.append(line);
            line = br.readLine();
        }

      String second = sb.toString();
      String pattern = "yyyy-MM-dd";
      SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
      String date = "]"+simpleDateFormat.format(new Date());
      Matcher m2 = Pattern.compile("^(.*)date(.*)$").matcher(second);
            if (m2.find()) {
                String keyPrefix = "Bearer ";
                key = keyPrefix + m2.group(1);
            }
        }
        br.close();
        return key;
Run Code Online (Sandbox Code Playgroud)

date变量不会返回模式匹配,但是当我对字符串进行硬编码时]2019-03-01它会起作用.这可能是什么问题?提前致谢.

java matcher java-date

0
推荐指数
1
解决办法
41
查看次数

java正则表达式问题

我想正则表达式可以匹配 <FONT FACE=\"Verdana\" SIZE=\"12\"> My Name is xyz </FONT>

<LI><FONT FACE=\"Verdana\" SIZE=\"12\"> My Name is xyz </FONT></LI> 它不应该是贪婪的

java regex matcher

-3
推荐指数
1
解决办法
230
查看次数

标签 统计

java ×9

matcher ×9

regex ×7

string ×2

design-patterns ×1

java-8 ×1

java-date ×1