go regex, 正则

go regex, 正则 nodes := []string{"foo.bar-000.x", "foo.t0.bar","foo.bar"} reg := regexp.MustCompile(`foo\.(.[^\.]*)\.{0,1}.*`) for _, v := range nodes { result := reg.FindSubmatch([]byte(v)) fmt.Println("output: ", string(result[1])) } [^a-zA-Z ]+, 匹配所有不是小写大写字母和空格的字符 . 匹配任意一个字符, 如果设置 s = true, 则可以匹配换行符 [字符类] 匹配"字符类"中的一个字符,"字符类"见后面的说明 [^字符类] 匹配"字符类"外的一个字符,"字符类"见后面的说明 \小写Perl标记 匹配"Perl类"中的一个字符,"Perl类"见后面的说明 \大写Perl标记 匹配"Perl类"外的一个字符,"Perl类"见后面的说明 [:ASCII类名:] 匹配"ASCII类"中的一个字符,"ASCII类"见后面的说明 [:^ASCII类名:] 匹配"ASCII类"外的一个字符,"ASCII类"见后面的说明 \pUnicode普通类名 匹配"Unicode类"中的一个字符(仅普通类),"Unicode类"见后面的说明 \PUnicode普通类名 匹配"Unicode类"外的一个字符(仅普通类),"Unicode类"见后面的说明 \p{Unicode类名} 匹配"Unicode类"中的一个字符,"Unicode类"见后面的说明 \P{Unicode类名} 匹配"Unicode类"外的一个字符,"Unicode类"见后面的说明 复合: xy 匹配 xy (x 后面跟随 y) x|y 匹配 x 或 y (优先匹配 x) 重复: x* 匹配零个或多个 x,优先匹配更多(贪婪) x+ 匹配一个或多个 x,优先匹配更多(贪婪) x? 匹配零个或一个 x,优先匹配一个(贪婪) x{n,m} 匹配 n 到 m 个 x,优先匹配更多(贪婪) x{n,} 匹配 n 个或多个 x,优先匹配更多(贪婪) x{n} 只匹配 n 个 x x*? 匹配零个或多个 x,优先匹配更少(非贪婪) x+? 匹配一个或多个 x,优先匹配更少(非贪婪) x?? 匹配零个或一个 x,优先匹配零个(非贪婪) x{n,m}? 匹配 n 到 m 个 x,优先匹配更少(非贪婪) x{n,}? 匹配 n 个或多个 x,优先匹配更少(非贪婪) x{n}? 只匹配 n 个 x 分组: ...

2017-10-12 · 6 min · 1122 words · -

js正则标志/g /i /m的用法

js正则标志/g /i /m的用法 正则的思想都是一样的,但是具体的写法会有所不同,在这里提到的/g,/i,/m在其他的地方也许就不能用了。 一,js正则标志/g,/i,/m说明 1,/g 表示该表达式将用来在输入字符串中查找所有可能的匹配,返回的结果可以是多个。如果不加/g最多只会匹配一个 2,/i 表示匹配的时候不区分大小写 3,/m 表示多行匹配,什么是多行匹配呢?就是匹配换行符两端的潜在匹配。影响正则中的^$符号 二,实例说明 1,/g的用法 查看复制打印? 2,/i的用法 查看复制打印? 3,/m的用法 查看复制打印? //从上例中可以看出/m影响的^$的分割方式 上面说的三个例子,/i,/g,/m分开来说的,可以排列组合使用的。个人觉得/m没有多大用处 http://blog.51yip.com/jsjquery/1076.html javascript 密码 正则 let testPassword = /^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)(?=.*?[!@#$%^&;*()_=+\-])[a-zA-Z\d!@#$%^&;*()_=+\-]*$/; //判断输入格式 if(testPassword.test(this.passwordText)){ ...密码匹配成功 }else { ...密码匹配失败 } ———————————————— 版权声明:本文为CSDN博主「weixin_42553179」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_42553179/article/details/103045970

2014-03-10 · 1 min · 40 words · -

JAVA 正则表达式 分组与捕获

JAVA 正则表达式 分组与捕获 import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Fenzhu { public static void main(String[] args) { Pattern p = Pattern.compile("(/d{3,5})([a-z]{2})"); String s = "123aa-34345bb-234cc-00"; Matcher m = p.matcher(s); while(m.find()) { System.out.println("m.group():"+m.group()); //打印所有 System.out.println("m.group(1):"+m.group(1)); //打印数字的 System.out.println("m.group(2):"+m.group(2)); //打印字母的 System.out.println(); } System.out.println("捕获个数:groupCount()="+m.groupCount()); } } 1 概述 1.1 什么是捕获组 捕获组就是把正则表达式中子表达式匹配的内容,保存到内存中以数字编号或显式命名的组里,方便后面引用。当然,这种引用既可以是在正则表达式内部,也可以是在正则表达式外部。 捕获组有两种形式,一种是普通捕获组,另一种是命名捕获组,通常所说的捕获组指的是普通捕获组。语法如下: 普通捕获组: (Expression) 命名捕获组: (?Expression) 普通捕获组在大多数支持正则表达式的语言或工具中都是支持的,而命名捕获组目前只有.NET、PHP、Python等部分语言支持,据说Java会在7.0中提供对这一特性的支持。上面给出的命名捕获组的语法是.NET中的语法,另外在.NET中使用(?’name’Expression)与使用(?Expression)是等价的。在PHP和Python中命名捕获组语法为: (?PExpression)。 ...

2012-08-19 · 3 min · 574 words · -

java正则表达式的中的问号

java正则表达式的中的问号 java正则表达式中的 ? 是惰性匹配,具体的看下面的例子: Pattern pattern = Pattern.compile("<.*>"); Matcher matcher =pattern.matcher("主页"); System.out.println(matcher.replaceAll("")); 将输出空,因为没有加问号,此时进行的是最长匹配(贪婪匹配) 可以做如果更改 Pattern pattern = Pattern.compile("<.*>"); Matcher matcher =pattern.matcher("主页[color=red]</a[/color]"); System.out.println(matcher.replaceAll("")); 将输出: 主页</a 如果把程序修改为: Pattern pattern = Pattern.compile("<.*?>"); Matcher matcher =pattern.matcher("主页"); System.out.println(matcher.replaceAll("")); 将输出: 主页 不加 ? 表示贪婪,加 ? 表示勉强,区别如下: 勉强是从左边一个一个地吃直到匹配为止,不加 ?的是一口吃掉整个字符串,然后从最后一个一个地吐出来直到匹配为止 字符串 a=====b=====b=== a.*b 将匹配满足条件最长的字符串 a=====b=====b 工作方式: 首先将: a=====b=====b=== 全部吃掉,从右边一个一个地吐出来 1. a=====b=====b=== 不匹配,吐出一字符 a=====b=====b== 不匹配,再吐出一字符 a=====b=====b= 不匹配,再吐出一字符 a=====b=====b 匹配了,结束。如果再不匹配继续吐,直到没有字符了,匹配失败 a.*? 将匹配满足条件最短的字符串 a=====b 工作方式: 从左边一个一个地吃掉字符 ...

2012-08-19 · 1 min · 83 words · -

Java正则表达式

Java正则表达式 大写字母和数字组成的10个字符 private static final Pattern pattern = Pattern.compile("([A-Z]|[0-9]){10}"); pattern.matcher("abcd1234567").matches(); 3位数字 d{3} 众所周知,在程序开发中,难免会遇到需要匹配、查找、替换、判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力。因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段。 大家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符 (例如字符a到z) 以及特殊字符 (元字符) 组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。 自从jdk1.4推出java.util.regex包,就为我们提供了很好的JAVA正则表达式应用平台。因为正则表达式是一个很庞杂的体系,所以我仅例举些入门的概念,更多的请参阅相关书籍及自行摸索。 // 反斜杠 /t 间隔 (’/u0009’) /n 换行 (’/u000A’) /r 回车 (’/u000D’) /d 数字 等价于[0-9] /D 非数字 等价于[^0-9] /s 空白符号 [/t/n/x0B/f/r] /S 非空白符号 [^/t/n/x0B/f/r] /w 单独字符 [a-zA-Z_0-9] /W 非单独字符 [^a-zA-Z_0-9] /f 换页符 /e Escape /b 一个单词的边界 /B 一个非单词的边界 /G 前一个匹配的结束 ^为限制开头 ^java 条件限制为以Java为开头字符 $为限制结尾 java$ 条件限制为以java为结尾字符 . 条件限制除/n以外任意一个单独字符 java.. 条件限制为java后除换行外任意两个字符 加入特定限制条件「[]」 [a-z] 条件限制在小写a to z范围中一个字符 [A-Z] 条件限制在大写A to Z范围中一个字符 [a-zA-Z] 条件限制在小写a to z或大写A to Z范围中一个字符 [0-9] 条件限制在小写0 to 9范围中一个字符 [0-9a-z] 条件限制在小写0 to 9或a to z范围中一个字符 [0-9[a-z]] 条件限制在小写0 to 9或a to z范围中一个字符(交集) ...

2012-08-19 · 3 min · 538 words · -

javascript

javascript 长数字格式化 (10000).toLocaleString('en-US'); // 输出 10,000 打印对象类型 foo.getClass() window.event.keyCode ascii //check if ESC pressed if (window.event.keyCode == 27) { $("#english").val("); } //check if enter pressed keyCode == 13 日期 ms > date string new Date(1636183170962).toLocaleString('en-US') 日期时间函数 var a=new Date(); var y = a.getFullYear()+ “- “; var m = a.getMonth()+ “- “; var d = a.getDate()+ “- “; var h = a.getHours()+ “- “; var x = a.getMinutes()+ “- “; var s = a.getSeconds()+ “- “; var ms=a.getMilliseconds()+ “- “; ...

2011-07-30 · 3 min · 549 words · -

golang 正则

“golang 正则” https://studygolang.com/articles/7256 func main() { fmt.Println(regexp.Match("H.* ", []byte("Hello World!"))) // true }

1 min · 13 words · -