正则表达式案例

本文使用java演示
转载自:JS正则表达式完整教程(略长)

1、匹配16进制颜色

String str = "#ffbbad asda #f33 #ffdd11 #dsasaa ";
Pattern pattern = Pattern.compile("#[a-fA-F0-9]{6}|#[a-fA-F0-9]{3}");
Matcher matcher = pattern.matcher(str);
while(matcher.find()){
	System.out.println(matcher.group()+" start:"+matcher.start()+",end:"+matcher.end());
}

结果

#ffbbad start:0,end:7
#f33 start:13,end:17
#ffdd11 start:18,end:25

2、数字的千位分隔符表示法

比如把"12345678",变成"12,345,678"。
分解
先考虑把在最后三个数字之前加逗号

String str = "123456789456";
//这个正则的意思是:在靠近末尾的三个数字前加逗号
Pattern pattern = Pattern.compile("(?=\\d{3}$)");
Matcher matcher = pattern.matcher(str);
System.out.println(matcher.replaceAll(","));
//结果 123456789,456

然后,每三个数字加一个逗号

......
//这个正则的意思是:在靠近末尾的(3/6/9/12...)个数字前加逗号
regex="(?=(\\d{3})+$)"
......
//结果 ,123,456,789,456

最后,开头不能有逗号

......
//这个正则的意思是:在靠近末尾的(3/6/9/12...)个数字前并且不是开头的位置上加逗号
regex="(?!^)(?=(\\d{3})+$)"
......
//结果 123,456,789,456

3、验证密码问题

密码长度6-12位,由数字、小写字母、大小字母组成,但必须由2种字符组成。
分解
首先获得6-12位,由三种字符组成的正则

regex="[0-9a-zA-Z]{6,12}"

同时包含2种字符
同时包含数字和小写字母,可以用: (?=.*[0-9])(?=.*[a-z])表示
所以密码长度6-12位,必须包括数字和小写字母的正则为:

regex="(?=.*[0-9])(?=.*[a-z])[0-9a-zA-Z]{6,12}"

同理可得
密码长度6-12位,必须包括数字和大写字母的正则为:

regex="(?=.*[0-9])(?=.*[A-Z])[0-9a-zA-Z]{6,12}"

密码长度6-12位,必须包括大写字母和小写字母的正则为:

regex="(?=.*[A-Z])(?=.*[a-z])[0-9a-zA-Z]{6,12}"

利用|拼接即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中通过re模块中的相应方法来支持正则表达式的匹配、查找和替换等功能。你可以使用re模块中的fullmatch方法来进行全匹配。 关于正则表达式的写法,通常情况下可以省略正则表达式前面的^和后面的$。^用于匹配字符串的开头,$用于匹配字符串的结尾。如果省略^,则表示匹配任意位置的字符串,如果省略$,则表示匹配包含指定模式的字符串。因此,省略^和$可以获得更灵活的匹配结果。 对于正则表达式案例中的编程语言排行,具体的正则表达式写法可以根据具体需求来确定。例如,可以使用正则表达式r'\bpython\b'来匹配单独的"python"单词。其中,\b表示单词的边界。这样可以避免匹配到其他包含"python"的字符串。 总而言之,正则表达式是描述特征并验证字符串是否符合这个特征的工具。在Python中,可以使用re模块中的方法来支持正则表达式的应用。具体的正则表达式写法可以根据需求来确定。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python正则表达式实例详解](https://blog.csdn.net/wads23456/article/details/115708526)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [详解Python正则表达式(含丰富案例)](https://blog.csdn.net/Dream_Gao1989/article/details/123440771)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值