该工单存在上一工单:[undo_lgc_line, 10800107423122, undo_lgc_line_link, 10800107423122, undo_lnk_lgc_link_component, 10800107423122, undo_lnk_phy_link_component, 10800107423122]
必须先归档前面的工单后,才能归档当前工单,归档失败
这里中文都是固定格式的,关键是抓取表的名字 以及10口头的数字,谢谢。注意当中的空格。
如果工单在其它数据中,需要两次匹配,第一次先匹配工单,然后再匹配工单中的表格和数字
如果全是工单数据,则只要匹配一次工单中的表格和数字
我给你一个php语言的分两次匹配的例子,你看看吧(正则表达式是两个斜杠中间的部分,第一次匹配取第一捕获组的数据,第二次匹配取第一和第二捕获组的数据)
<?php$str = "该工单存在上一工单:[undo_lgc_line, 10800107423122, undo_lgc_line_link, 10800107423122, undo_lnk_lgc_link_component, 10800107423122, undo_lnk_phy_link_component, 10800107423122]必须先归档前面的工单后,才能归档当前工单,归档失败";
preg_match_all('/该工单存在上一工单:\[(.+?)\]必须先归档前面的工单后,才能归档当前工单,归档失败/',$str,$s);
for ($i=0; $i<count($s[1]); $i++) {
preg_match_all ('/([a-z_]+),\s*(10[0-9]+)/', $s[1][$i], $matches);
for ($j=0; $j<count($matches[1]); $j++) {
echo "table=".$matches[1][$j]." number=".$matches[2][$j]."\n";
}
}
?>
1、至少8-16个字符,至少1个大写字母,1个小写字母和1个数字,其他可以是任意字符:
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\s\S]{8,16}$/
其中 [\s\S] 中的\s空白符,\S非空白符,所以[\s\S]是任意字符。也可以用 [\d\D]、[\w\W]来表示。
2、至少8个字符,至少1个大写字母,1个小写字母和1个数字,不能包含特殊字符(非数字字母):
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
3、至少8个字符,至少1个字母,1个数字和1个特殊字符:
^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$
4、至少8个字符,至少1个大写字母,1个小写字母和1个数字:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$
5、至少8个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}
6、最少8个最多十个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,10}
匹配结果:
undo_lgc_line
10800107423122
undo_lgc_line_link
10800107423122
undo_lnk_lgc_link_component
10800107423122
undo_lnk_phy_link_component
10800107423122
undo_lgc_line undo_lgc_line_link undo_lnk_lgc_link_component undo_lnk_phy_link_component 这几个是表名 我要抓取这个表的名字 表名是小写a-z字母加下划线组成的。
追答表名也没有规律啊,只是知道小写字母+下划线而已。。。
追问等于没说