卧龙、凤雏二者得一可安天下。——水镜先生
DartPad 线上工具
正则表达式 - 语法
[...] 匹配中括号内所有字符
1、匹配所有字符ABC(字符串中是否包含ABC所有字符中任意一个字符)
至少包含一个字符为true,否则为false
void main() { isABC('A1234656B123456C'); } void isABC(String input) { RegExp mobile = new RegExp(r'[ABC]'); bool isAbc = mobile.hasMatch(input); print("是否包含ABC中任意字符:${isAbc}"); }
Console 是否ABC:true
2、匹配字符串#@¥%&*()-+(字符串中是否包含#@¥%&*()-+所有字符串中任意一个字符)
void main() { isMatch('123阿范德萨范德萨'); } void isMatch(String input) { RegExp regExpStr = new RegExp(r'[#@¥%&*()-+]'); bool isContainer = regExpStr.hasMatch(input); print("'${input}' 是否包含字符串:'#@¥%&*()-+' 中任意一个字符 ${isContainer}"); }
运行结果:
'123阿范德萨范德萨' 是否包含字符串:'#@¥%&*()-+' 中任意一个字符 false
void main() { isMatch('1#2@3*'); isMatch('1#2@3*dfasfds'); isMatch('1#2@3*dfasfds+dfsf-'); isMatch('1#2@3*dfasfds+dfsf-4456465¥'); } void isMatch(String input) { RegExp regExpStr = new RegExp(r'[#@¥%&*()-+]'); bool isContainer = regExpStr.hasMatch(input); print("'${input}' 是否包含字符串:'#@¥%&*()-+' 中任意一个字符 ${isContainer}\n"); }
运行结果:
'1#2@3*' 是否包含字符串:'#@¥%&*()-+' 中任意一个字符 true '1#2@3*dfasfds' 是否包含字符串:'#@¥%&*()-+' 中任意一个字符 true '1#2@3*dfasfds+dfsf-' 是否包含字符串:'#@¥%&*()-+' 中任意一个字符 true '1#2@3*dfasfds+dfsf-4456465¥' 是否包含字符串:'#@¥%&*()-+' 中任意一个字符 true
3、匹配字符串#@¥%&*()-+(字符串中是否包含#@¥%&*()-+所有字符串中任意一个字符)
void main() { isMatch('我很菜#确实很菜@菜得很*'); isMatch('中级#初级@资深*专家'); isMatch('六脉神剑#如来涅槃@浴火重生*游龙引凤+卧薪尝胆-飞龙在天¥'); } void isMatch(String input) { RegExp regExpStr = new RegExp(r'[#@¥%&*()-+]'); bool isContainer = regExpStr.hasMatch(input); print("'${input}' 是否包含字符串:'#@¥%&*()-+' 中任意一个字符 ${isContainer}\n"); }
运行结果:
'我很菜#确实很菜@菜得很*' 是否包含字符串:'#@¥%&*()-+' 中任意一个字符 true '中级#初级@资深*专家' 是否包含字符串:'#@¥%&*()-+' 中任意一个字符 true '六脉神剑#如来涅槃@浴火重生*游龙引凤+卧薪尝胆-飞龙在天¥' 是否包含字符串:'#@¥%&*()-+' 中任意一个字符 true
[^...] 匹配除开中括号内所有字符
1、匹配除开字符串 #@¥%&*()-+ 以外的其他字符串(字符串中是否包含除开#@¥%&*()-+所有字符串以外的其他字符)
至少包含除开字符串 #@¥%&*()-+ 任意字符的之外字符串
void main() { isMatch('@#%()+-'); isMatch('中级#初级@资深*专家'); isMatch('六脉神剑#如来涅槃@浴火重生*游龙引凤+卧薪尝胆-飞龙在天¥'); isMatch('卧薪尝胆\飞龙在天'); } void isMatch(String input) { RegExp regExpStr = new RegExp(r'[^-#@¥%&*()+]'); bool isContainer = regExpStr.hasMatch(input); print("'${input}' 是否包含除开字符串:'#@¥%&*()-+' 中任意一个字符 ${isContainer}\n"); }
'@#%()+-' 是否包含除开字符串:'#@¥%&*()-+' 中任意一个字符 false '中级#初级@资深*专家' 是否包含除开字符串:'#@¥%&*()-+' 中任意一个字符 true '六脉神剑#如来涅槃@浴火重生*游龙引凤+卧薪尝胆-飞龙在天¥' 是否包含除开字符串:'#@¥%&*()-+' 中任意一个字符 true '卧薪尝胆飞龙在天' 是否包含除开字符串:'#@¥%&*()-+' 中任意一个字符 true
2、匹配除开字符串 "好好学习,好好爱自己" 以外的其他字符串(字符串中是否包含除开 "好好学习,好好爱自己" 所有字符串以外的其他字符)
至少包含除开字符串 "好好学习,好好爱自己" 任意字符的之外字符串。
也可以包含 "好好学习,好好爱自己" 任意字符
void main() { isMatch('@#%()+-'); isMatch('中级#初级@资深*专家'); isMatch('六脉神剑#如来涅槃@浴火重生*游龙引凤+卧薪尝胆-飞龙在天¥'); isMatch('卧薪尝胆\飞龙在天'); } void isMatch(String input) { RegExp regExpStr = new RegExp(r'[^好好学习,好好爱自己]'); bool isContainer = regExpStr.hasMatch(input); print("'${input}' 是否包含字符串:'好好学习,好好爱自己' 中任意一个字符 ${isContainer}\n"); }
'@#%()+-' 是否包含字符串:'好好学习,好好爱自己' 中任意一个字符 true '中级#初级@资深*专家' 是否包含字符串:'好好学习,好好爱自己' 中任意一个字符 true '六脉神剑#如来涅槃@浴火重生*游龙引凤+卧薪尝胆-飞龙在天¥' 是否包含字符串:'好好学习,好好爱自己' 中任意一个字符 true '卧薪尝胆飞龙在天' 是否包含字符串:'好好学习,好好爱自己' 中任意一个字符 true
总结:
[...] 匹配中括号内所有字符:相当于和括号内容求交集
[^......]匹配除开括号内所有之外的字符并且可以包含括号内字符:相当于存在除开括号内字符的其他集合并且可以交集括号内容。