精华内容
下载资源
问答
  • java中,很多时候需要解析一段字符串获取符合条件的所有匹配项。下面例子获取一段字符串中满足 ${字母数字} 条件的字符串的代码​import java.util.List;import java.util.regex.Matcher;import java.util.regex....

    在java中,很多时候需要解析一段字符串获取符合条件的所有匹配项。下面例子获取一段字符串中满足   ${字母数字}  条件的字符串的代码

    import java.util.List;

    import java.util.regex.Matcher;

    import java.util.regex.Pattern;

    public class Test {

    public static void main(String[] args) {

    String str = "select * from order where createdUser = ${currentUser} and depart = ${currentOrg} and status = 'VALID'";

    String reg = "\\$\\{[a-zA-Z0-9]+\\}";//定义正则表达式

    Pattern patten = Pattern.compile(reg);//编译正则表达式

    Matcher matcher = patten.matcher(str);// 指定要匹配的字符串

    ListmatchStrs = new ArrayList<>();

    while (matcher.find()) { //此处find()每次被调用后,会偏移到下一个匹配

    matchStrs.add(matcher.group());//获取当前匹配的值

    }

    for (int i = 0; i < matchStrs.size(); i++) {

    System.out.println(matchStrs.get(i));

    }

    }

    }

    代码输出结果:

    ${currentUser}

    ${currentOrg}

    展开全文
  • //这里可以匹配多种格式见下面说明 String regExp = "^[1-9]\\d{3}(-(0?[1-9]|1[0-2])(-(0?[1-9]|[1-2][0-9]|3[0-1])(\\s(20|21|22|23|[0-1]?\\d)(:[0-5]?\\d(:[0-5]?\\d)?)?)?)?)?$"; long temp = 0; if(d.
    public static void main(String[] args)  {
    String dt = "2021-08-09 8:03";//这里可以匹配多种格式见下面说明
    String regExp = "^[1-9]\\d{3}(-(0?[1-9]|1[0-2])(-(0?[1-9]|[1-2][0-9]|3[0-1])(\\s(20|21|22|23|[0-1]?\\d)(:[0-5]?\\d(:[0-5]?\\d)?)?)?)?)?$";
    
    long temp = 0;
    if(dt.matches(regExp)){
        temp = temp(dt, check(dt,"-"));
    }
    System.out.println(temp);

    }

    private static String check(String dt,String flag) {
        StringBuffer sb = new StringBuffer("yyyy");
        int i = dt.indexOf(flag);
        if (i<0){
            return sb.toString();
        }else if(dt.length()<8){
            sb.append(flag).append("MM");
            return sb.toString();
        }else if(dt.length()<11){
            sb.append(flag).append("MM").append(flag).append("dd");
            return sb.toString();
        }else if(dt.indexOf(":")<0){
            sb.append(flag).append("MM").append(flag).append("dd").append(" ").append("HH");
            return sb.toString();
        }else if(dt.lastIndexOf(":")>14){
            sb.append(flag).append("MM").append(flag).append("dd").append(" ").append("HH").append(":mm").append(":ss");
            return sb.toString();
        }else {
            sb.append(flag).append("MM").append(flag).append("dd").append(" ").append("HH").append(":mm");
            return sb.toString();
        }
    }
    private static long temp(String dateTime,String template) {
        long time = (new SimpleDateFormat(template)).parse(dateTime, newParsePosition(0)).getTime() ;
        System.out.println(time);
        System.out.println(System.currentTimeMillis());
        return time;
    }

    说明:dt输入类型可以是匹配的格式

    yyyy 格式:2021

    yyyy-MM或yyyy-M格式:2021-08 或2021-8

    yyyy-MM-dd或yyyy-M-d或yyyy-MM-d或yyyy-M-dd:2021-08-24 或 2021-8-24 或 2021-07-3等

    yyyy-MM-dd HH或yyyy-M-d H或yyyy-MM-d H等格式:2021-08-09 08 或2021-08-9 8 等

    yyyy-MM-dd HH:mm或yyyy-M-d H:m或yyyy-MM-d H:mm等:2021-08-09 17:08 或2021-08-9 8:2 

    yyyy-MM-dd HH:mm:ss 等格式:2021-08-09 08:03:57 或 2021-8-09 8:28:9 等

    还可以把flage="/"就可以匹配yyyy/MM/dd HH:mm:ss 等格式

    展开全文
  • java正则表达式如何获取...java正则表达式如何获取字符串中所有匹配内容java正则表达式提取需要用到Matcher类。正则规则就是“一个数字加上大于等于0个非数字再加上结束符”Pattern pattern= Pattern.pile("(\\d)[^...

    java正则表达式如何获取字符串中所有匹配内容以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    bd3d4fbaeaa46df138bd115e6c3cc93c.png

    java正则表达式如何获取字符串中所有匹配内容

    java正则表达式提取需要用到Matcher类。

    正则规则就是“一个数字加上大于等于0个非数字再加上结束符”

    Pattern pattern

    = Pattern.pile("(\\d)[^\\d]*$")

    Matcher matcher

    = pattern.matcher(s)

    if(matcher.find())

    System.out.println

    (matcher.group(1)); } }

    如何获取字符串中匹配到正则表达式的子串开

    mport java.util.regex.Matcher;import java.util.regex.Pattern;public class Test {public static void main(String[] args) {String s = "A876X"; 把要匹配的字符串写成正则表达式,然后要提取的字符使用括号括起来 在这里,我们要提取最后一个数字,正则规则就是“一个数字加上大于等于0个非数字再加上结束符”Pattern pattern = Pattern.pile("(\\d)[^\\d]*$");Matcher matcher = pattern.matcher(s);if(matcher.find())System.out.println(matcher.group(1));}}

    正则表达式获取字符串

    string pattern=@"(.+?)"

    取分组 Match.group[1]

    JS如何用正则表达式 获取字符串内的匹配部份?

    实现的效果:在字符串中abcdefgname='test'sddfhskshjsfsjdfps中获取name的值test

    实现的机制:通过replace的回调函数获取。

    可以通过下面的代码获取匹配部分

    var str = "abcdefgname='test'sddfhskshjsfsjdfps";

    var reg = /name='((\w|-|\s)+)/ig;

    str.replace(reg, function() {

    console.log(arguments.length); 5

    console.log(arguments[1]);test

    });

    字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。

    正则表达式如何获取被匹配字符串的匹配组名

    java正则提取需要用到Matcher类,下面给出案例示例供参考

    需要提取车牌号中最后一个数字,比如说:苏A7865提取5,苏A876X提取6

    import java.util.regex.Matcher;

    import java.util.regex.Pattern;

    public class Test {

    public static void main(String[] args) {

    String s = "A876X";

    把要匹配的字符串写成正则表达式,然后要提取的字符使用括号括起来

    在这里,我们要提取最后一个数字,正则规则就是“一个数字加上大于等于0个非数字再加上结束符”

    Pattern pattern = Pattern.pile("(\\d)[^\\d]*$");

    Matcher matcher = pattern.matcher(s);

    if(matcher.find())

    System.out.println(matcher.group(1));

    }

    }

    关于Matcher 中的几个方法说明:

    Mathcer.start()

    Matcher.end()

    Matcher.group()

    当使用matches(),lookingAt(),find()执行匹配操作后,就可以利用以上三个方法得到更详细的信息.

    start()返回匹配到的子字符串在字符串中的索引位置.

    end()返回匹配到的子字符串的最后一个字符在字符串中的索引位置.

    group()返回匹配到的子字符串

    示例代码如下,具体功能请参考注释

    Pattern p=Pattern.pile(“\d+”);

    Matcher m=p.matcher(“aaa2223bb”);

    m.find();匹配2223

    m.start();返回3

    m.end();返回7,返回的是2223后的索引号

    m.group();返回2223

    Mathcer m2=p.matcher(“2223bb”);

    m2.lookingAt(); 匹配2223

    m2.start(); 返回0,由于lookingAt()只能匹配前面的字符串,所以当使用lookingAt()匹配时,start()方法总是返回0

    m2.end(); 返回4

    m2.group(); 返回2223

    Matcher m3=p.matcher(“2223”); 如果Matcher m3=p.matcher(“2223bb”); 那么下面的方法出错,因为不匹配返回false

    m3.matches(); 匹配整个字符串

    m3.start(); 返回0

    m3.end(); 返回3,原因相信大家也清楚了,因为matches()需要匹配所有字符串

    m3.group(); 返回2223

    另外,Mathcer类中start(),end(),group()均有一个重载方法它们是start(int i),end(int i),group(int i)专用于分组操作,Mathcer类还有一个groupCount()用于返回有多少组.

    示例如下:

    Pattern p=Pattern.pile(“([a-z]+)(\d+)”);

    Matcher m=p.matcher(“aaa2223bb”);

    m.find(); 匹配aaa2223

    m.groupCount(); 返回2,因为有2组

    m.start(1); 返回0 返回第一组匹配到的子字符串在字符串中的索引号

    m.start(2); 返回3

    m.end(1); 返回3 返回第一组匹配到的子字符串的最后一个字符在字符串中的索引位置.

    m.end(2); 返回7

    m.group(1); 返回aaa,返回第一组匹配到的子字符串

    m.group(2); 返回2223,返回第二组匹配到的子字符串

    注意: 只有当匹配操作成功,才可以使用start(),end(),group()三个方法,否则会抛出java.lang.IllegalStateException,也就是当matches(),lookingAt(),find()其中任意一个方法返回true时,才可以使用。

    C# 正则表达式获取字符串?

    针对你的问题:

    是给数组命名

    (?subexpression)

    其中name是有效的组名称,而subexpression是任何有效的正则表达式模式。 name不得包含任何标点符号字符,并且不能以数字开头。

    这个方式相当于下面这个表达式

    "(?

    java正则表达式如何获取分组匹配内容

    String str = "我的QQ是:456456我的电话是:0532214我的邮箱是:aaa@aaa.";

    \d 表示0-9 任意一个数字 后面有+号 说明这个0-9单个数位出现一到多次 比如21312314

    String reg = "\\d+";

    Pattern是一个正则表达式经编译后的表现模式。

    Pattern pattern = Pattern.pile (reg);

    Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。

    Matcher matcher = pattern.matcher (str);

    只有执行了find()方法 后,状态机matcher才是真正开始进行匹配工作的!

    while (matcher.find ())

    {

    matcher.group()返回匹配到的子字符串

    System.out.println (matcher.group ());

    }

    }

    Java正则表达式匹配是否存在字符串。

    正则表达式为:.*a.*b.*c.*

    package .test;

    import java.util.regex.Matcher;

    import java.util.regex.Pattern;

    public class RegexTest {

    /**

    * @param args

    */

    public static void main(String[] args) {

    TODO Auto-generated method stub

    String source = "abcdefg\n" +

    "uaibec\n" +

    "wabbcd\n" +

    "adb\n" +

    "acb";

    String regex = "(.*a.*b.*c.*)";

    Pattern pattern = Pattern.pile(regex,Pattern.MULTILINE);

    Matcher matcher = pattern.matcher(source);

    while(matcher.find()){

    System.out.println(matcher.group());

    }

    }

    }

    你可以直接复制出来,运行一下就可以了

    分页:123

    展开全文
  • 今天在写代码的时候遇到一个问题:需要判断一个字符串是否包含另一个字符串。 查看菜鸟教程: boolean matches = Pattern.matches(".*abc.*", "1346abcsdf112"); //返回true 菜鸟教程链接:java正则表达式

    今天在写代码的时候遇到一个问题:需要判断一个字符串是否包含另一个字符串。
    查看菜鸟教程:

    boolean matches = Pattern.matches(".*abc.*", "1346abcsdf112");
    //返回true 
    

    菜鸟教程链接:java正则表达式

    展开全文
  • 需求:给定一个字符串s,判断当s中包含“tree fiddy"或“3.50”或“three thirty”子字符串返回true,否则返回false.题目来自代码勇士。import java.util.regex.Pattern;/*** 判断字符串中是否包含某字符串** @...
  • String sqlStr = "select count(*) from table where a = @{1} and b = @{2} and c =@{3}"; String regex = "select\\s+count\\((\... //判断是否匹配 boolean matches = sqlStr.matches(regex); if (!matches) { .
  • ②p.matcher(str)表示以用模板p去生成一个字符串str的匹配器,它的返回值是一个Matcher类的引用,为什么要这个东西呢?按照自然的想法,返回一个boolean值不行吗?我们可以简单的使用如下方法:booleanresult=...
  • 索引0是特殊的,表示“整个匹配项”。使用一对括号“ (...)”创建捕获组。括号内的所有内容均为捕获。通过打开括号(表示组可以重叠),从左到右(从1开始)对组编号。由于您的正则表达式中没有括号,因此不能存在第1组...
  • 昨天遇到一个"赞美之词"的报文数据需要解析,它大概长这个样子:{"id","name",[{1,1,2},{2,1,2},{3,1,2},{4,1,2}],[{"iid","nname",[0,1]},{"iid","nname",[2,3]}...思考一下:没事,小问题通过split(",",3)分割字符...
  • 这篇文章主要介绍了Java中使用正则表达式实现字符串匹配字符串查找,匹配,替换,正则无不能做,特别是灵活的运用子串匹配,感兴趣的小伙伴们可以参考一下有一个String,如何查询其中是否有y和f字符?最黑暗的办法...
  • 于是想到用正则表达式来完成,对java正则表达式提取字符的方式实例感兴趣的朋友一起学习吧正好遇到一个需求需要将字符串中特定的字符全部提取出来,这个如果是按常规的字符串处理的话非常的繁琐。于是想到用正则...
  • 今天做项目的时候,需要从特定的josn字符串中取出某个特定的值,在网上找了一些方法,都不能很好的实现这个功能,自己用正则表达式写了一个方法分享给大家。import java.util.regex.Matcher;import java.util.regex....
  • import lombok.AllArgsConstructor; import lombok.Data; import java.io.Serializable;... * java通过正则表达式将字符串匹配的字符高亮显示 * @Author zyh * @Date 2021/5/27 16:17 */ public cl.
  • 慕容708150一、正则表达式基础知识1.1 句点符号 在玩英文拼字游戏,想要找出三个字母的单词,而且这些...这样,完整的表达式就是“t.n”,匹配“tan”、“ten”、“tin”和“ton”,还匹配“t#n”、“tpn”甚至“t n...
  • Java使用正则表达式如何实现获取字符串中的数字发布时间:2020-11-11 16:48:01来源:亿速云阅读:99作者:Leah本篇文章给大家分享的是有关Java使用正则表达式如何实现获取字符串中的数字,小编觉得挺实用的,因此...
  • 今天在Java中想使用正则表达式来获取一段文本中的任意字符。于是很随意得就写出如下匹配规则:(.*)结果运行之后才发现,无法获得换行之后的文本。于是查了一下手册,才发现正则表达式中,“.”(点符号)匹配的是除了...
  • /* * 正则表达式匹配 */ package StringRegex; import java.util.regex.Matcher; import java.util.regex.Pattern; public class TimePuls { public static void main(String[] args){ String s1 = new St...
  • package infox.util;/*** 用正则表达式来验证邮箱格式或网址格式是否正确!* @author Infox* @date 3/12/2007 20:36:15* @address 四川农业大学*/import java.util.regex.*;public final class RegExpValidator...
  • 如果你想使用Java 8流并且对while循环过敏,你可以试试这个:publicstaticintcountPattern(Stringreferences,PatternreferencePattern){Matchermatcher=referencePattern.matcher(references);returnStream.iterate...
  • java正则表达式匹配所有数字的案例

    千次阅读 2021-03-04 03:42:58
    用于匹配正则表达式为 :([1-9]\d*\.?\d*)|(0\.\d*[1-9])([1-9] :匹配1~9的数字;\d :匹配数字,包括0~9;* :紧跟在 \d 之后,表明可以匹配零个及多个数字;\. :匹配小数点;? :紧跟在 \. 之后,表明可以匹配...
  • 前言 今天逛论坛,看到了一位35岁的老程序员发的博文,看完内容后我又活了,35岁挑战华为社招,竟然...我们知道在调用某个函数的时候无非就是两种情况,要么马上返回,然后根据返回值进行接下来的业务处理。当在使用阻
  • 例如从字符串中找出号码 String msg = "小明的号码是187****4012和150****9835"; String phone = ""; //校验信息中是否存在手机号 if(StringUtils.isNotBlank(msg)) { Pattern pattern = Pattern.compile("1(3|4|5|...
  • 正则表达式是一个用于匹配字符串的模板,用于匹配字符串正则表达式语法. 小数点,可匹配\n之外的任何一个字符,要匹配小数点,用\.x x是某一具体字符,表示匹配该字符\d 匹配0-9之间的一个数字\D 匹配\d之外的...
  • 为了将正则表达式与String匹配,此类提供了两种方法,即-compile() -此方法接受表示正则表达式的String并返回Pattern类的对象。matcher() -此方法接受一个String值并创建一个matcher对象,该对象将给定的String与...
  • 场景:校验一个字符串是否含有指定的字符,包含返回true,反之false 分析:看这句话,正面思考,我们很难用java正则表达式实现。咱们可以换个思维实现,校验一个不含指定的字符的字符串,满足返回true,反之false...
  • 这是LeetCode上面一道难度为困难的题目,记录一下,整的来说,递归方法描述起来思路清晰,动态规划...在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但与"aa.a"和...
  • 正则表达式是处理字符串的强大的工具,它不是Java的特性,前端的JavaScript等也有...也就是给定的字符串正则表达式是否匹配。 举个例子: 图上这个正则表达式是一个手机号码的表达式,比如我们写了一个字符串130236
  • JAVA正则表达式目前还不支持平衡组,要实现匹配括号只有定制深度。其原理就是不断循环匹配括号里的内容和括号后面的内容(\\([^\\(\\)]*\\)[^\\(\\)]*)*例子://匹配二级括号String str="(a(b))";String regex = "\...
  • 对于这三种匹配模式也有叫:“最大匹配Greedy”“最小匹配Reluctant”“完全匹配Possessive”。现在将我对这三种匹配模式的理解写出来,并提供一些例子供大家参考。1、Greediness(贪婪型):最大匹配X?、X*、X+、X{n...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 61,758
精华内容 24,703
关键字:

java正则返回匹配字符串

java 订阅