正则表达式获取xml节点内容,并且替换

  String xml = "XXXXXX<card>12345</card><card>2345</card>XXXXX";

      String regex = "<card>([^</card>]*)";  
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(xml);
      
        if(matcher.find()) { // while 处理全部的
         String card =matcher.group(1);
         xml.replaceAll(regex,"<card>"+card);
        
      

1.有时需要查找不属于某个能简单定义的字符类的字符。比如想查找除了数字以外,其它任意字符都行的情况,这时需要用到反义:
表3.常用的反义代码
代码/语法 说明
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
例子:\S+匹配不包含空白符的字符串。
<a[^>]+>匹配用尖括号括起来的以a开头的字符串。



表2.常用的限定符
代码/语法 说明
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次


/^[A-Za-z0-9]*$/.test(str)

猜你喜欢

转载自a545807638.iteye.com/blog/2264168