怎么写正则表达式,规范是什么,怎么在java中使用 ==记录汇总

-

非贪婪限定符

待研究

参考:正则表达式 - JavaScript | MDN (mozilla.org)

-

匹配任意的字符串

filename.matches("GHSA-.*\\.json")

.*  就代表任意的字符串(少部分不匹配)

. 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。
* 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。

 

-

匹配固定的字符串

filename.matches("GHSA-.*\\.json")

直接写出来就代表匹配该固定的字符串。如前面的GHSA-

 

-

规范:

所有的领悟都发源于这篇文章

正则表达式书写规则说明 - 诸子流 - 博客园 (cnblogs.com)

在java中使用:使用的是String类自带的matches()方法

    @Test
    public void likeBamboo(){
        String regex="[0-9]+\\.[0-9]+\\.[0-9]+";
        String regex1="[0-9]+\\.[0-9]+";
        String regex2="([0-9]+[^0-9]+)*[0-9]+";
        List<DownloadURL> all = urlRepository.findAll();
        all.forEach(url->{
            if (url.getVersion().matches(regex2)){
                GrabAnalyzeURL grabAnalyzeURL = new GrabAnalyzeURL();
                BeanUtils.copyProperties(url,grabAnalyzeURL);
                analyzeURLRepository.save(grabAnalyzeURL);
            }
        });
    }
获得version是数字的符合00x00x00...格式的对象

最重要的感悟:

正则表达式的意义是判断某个字符串是什么格式,而不是判断某个字符串不是什么格式

要注意,有一些符号需要使用转义字符才能表达原本的意思

 

posted on 2022-12-09 11:17  影子BLH  阅读(51)  评论(0)    收藏  举报