怎么写正则表达式,规范是什么,怎么在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...格式的对象
最重要的感悟:
正则表达式的意义是判断某个字符串是什么格式,而不是判断某个字符串不是什么格式
要注意,有一些符号需要使用转义字符才能表达原本的意思