1215

本文详细介绍了正则表达式的各种符号及其用法,包括特殊字符、量词、字符集等,并通过实例展示了如何使用正则表达式进行字符串的匹配与转换。
\b 代表着单词的开头或结尾,也就是单词的分界处 \b匹配这样的位置:它的前一个字符和后一个字符不全是(一个是,一个不是或不存在)\w
. 除了换行符以外的任意字符 换行符就是'\n',ASCII编码为10(十六进制0x0A)的字符


\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
常用的反义代码 (大写)
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
|
/g 匹配所有(全文有几个就匹配几个)
/i 忽略大小写
/d 数字
/的写法: /gi 




\S+匹配不包含空白符的字符串。
<a[^>]+>匹配用尖括号括起来的以a开头的字符串


\b(\w+)\b\s+\1\b可以用来匹配重复的单词,像go go, 或者kitty kitty。这个表达式首先是一个单词,也就是单词开始处和结束处之间的多于一个的字母或数字(\b(\w+)\b),这个单词会被捕获到编号为1的分组中,然后是1个或几个空白符(\s+),最后是分组1中捕获的内容(也就是前面匹配的那个单词)(\1)。


\a 报警字符(打印它的效果是电脑嘀一声)
\b 通常是单词分界位置,但如果在字符类里使用代表退格
\t 制表符,Tab
\r 回车
\v 竖向制表符
\f 换页符
\n 换行符


零宽断言 (?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp后面的位置
(?!exp) 匹配后面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置
\b\w+(?=ing\b) I'm singing while you're dancing.时,它会匹配sing和danc。  \b\w+(表达式)意思是 以字符串开头,符合表达式
(?<=\bre)\w+\b reading a book 它匹配ading。
eg:
将数字87463297转成87,463,297
零宽断言
 str.replace(/\d{1,3}(?=(\d{3})+$)/g,function(s){
    return s+','
}) 
用字符串reverse()
console.info( str.split("").reverse().join("").replace(/(\d{3})+?/g,function(s){
    return s+",";
}).replace(/,$/,"").split("").reverse().join("") )






ng-standmoney




必须在
客户附言必须在此区间内:0-9,a-z,A-Z,GB 2312 汉字区。即 GBK/2: B0A1-F7FE.GB 2312 非汉字符号区。即 GBK/1: A1A1-A9FE。


        String regOutRemit = "[a-zA-Z0-9。,?!;:《》()\u4E00-\u9FA5\uF900-\uFA2D]";
    if(!Util.isNullOrEmpty(postScript)){
    for(int i=0;i<postScript.length();i++)
    {
    if(!String.valueOf((postScript.charAt(i))).matches(regOutRemit))
    return false;
    }
    }
    return true;
   
    //阻止事件提交.
    element.bind("keypress", function(e) {
if(e.keyCode){//firefox
if((e.keyCode<48 && e.keyCode !=46) || e.keyCode>57)
e.preventDefault();
}
else{//非firefox
if((e.which<48 && e.keyCode !=46) || e.which>57)
e.preventDefault();
}
});


preventDefault 冒泡自己不提交
stopPropagation 提交不冒泡


数字转换为大写
if(undefined == Num || Num == null || Num == "") {
return "";
}
for(var i=Num.length-1;i>=0;i--) {
Num = Num.replace(",","");//替换tomoney()中的“,”
Num = Num.replace(" ","");//替换tomoney()中的空格
}
//---字符处理完毕,开始转换,转换采用前后两部分分别转换---//
part = String(Num).split(".");
if(part[0].length > 10){ 
return "over";
}
//去掉金额左侧0
var amount = parseInt(part[0]);
part[0] = String(amount);
newchar = ""; 
//小数点前进行转化
for(i=part[0].length-1;i>=0;i--) {//若数量超过拾亿单位,提示
tmpnewchar = "";
perchar = part[0].charAt(i);
switch(perchar){
case "0": tmpnewchar="零" + tmpnewchar ;break;
case "1": tmpnewchar="壹" + tmpnewchar ;break;
case "2": tmpnewchar="贰" + tmpnewchar ;break;
case "3": tmpnewchar="叁" + tmpnewchar ;break;
case "4": tmpnewchar="肆" + tmpnewchar ;break;
case "5": tmpnewchar="伍" + tmpnewchar ;break;
case "6": tmpnewchar="陆" + tmpnewchar ;break;
case "7": tmpnewchar="柒" + tmpnewchar ;break;
case "8": tmpnewchar="捌" + tmpnewchar ;break;
case "9": tmpnewchar="玖" + tmpnewchar ;break;
}
switch(part[0].length-i-1) {
case 0: tmpnewchar = tmpnewchar +"圆" ;break;
case 1: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break;
case 2: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break;
case 3: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break;
case 4: tmpnewchar= tmpnewchar +"万" ;break;
case 5: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break;
case 6: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break;
case 7: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break;
case 8: tmpnewchar= tmpnewchar +"亿" ;break;
case 9: tmpnewchar= tmpnewchar +"拾" ;break;
}
newchar = tmpnewchar + newchar;
}
//小数点之后进行转化
if (Num.indexOf(".")!=-1) {
if(part[1].length > 2) {
part[1] = part[1].substr(0,2);
}
for(var i=0;i<part[1].length;i++){
tmpnewchar = "";
perchar = part[1].charAt(i);
switch(perchar){
case "0": tmpnewchar="零" + tmpnewchar ;break;
case "1": tmpnewchar="壹" + tmpnewchar ;break;
case "2": tmpnewchar="贰" + tmpnewchar ;break;
case "3": tmpnewchar="叁" + tmpnewchar ;break;
case "4": tmpnewchar="肆" + tmpnewchar ;break;
case "5": tmpnewchar="伍" + tmpnewchar ;break;
case "6": tmpnewchar="陆" + tmpnewchar ;break;
case "7": tmpnewchar="柒" + tmpnewchar ;break;
case "8": tmpnewchar="捌" + tmpnewchar ;break;
case "9": tmpnewchar="玖" + tmpnewchar ;break;
}
if(i==0)tmpnewchar =tmpnewchar + "角";
if(i==1)tmpnewchar = tmpnewchar + "分";
newchar = newchar + tmpnewchar;
}
}


//替换所有无用汉字
while(newchar.search("零零") != -1)
newchar = newchar.replace("零零", "零");

newchar = newchar.replace("零亿", "亿");
newchar = newchar.replace("零万", "万");
newchar = newchar.replace("零圆", "圆");
newchar = newchar.replace("零角", "");
newchar = newchar.replace("零分", "");
newchar = newchar.replace("亿万", "亿");


if (newchar.charAt(0) == "圆"){
newchar = newchar.replace("圆", "");
}
if (newchar.charAt(newchar.length-1) == "圆"){
newchar = newchar+"整";
return newchar;
}else{
return newchar;
}
根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
<think>好的,我现在需要解决用户关于Navicat的1215版本信息或错误代码的问题。首先,用户提到了“1215”,这可能指的是错误代码1215或者是Navicat的版本号。不过根据常见情况,Navicat的版本号通常不会用四位数字,比如当前最新版本是16.x,而错误代码1215在MySQL中较为常见,涉及外键约束问题。 首先,我需要确认用户所指的“1215”具体是版本还是错误代码。根据用户提供的引用内容,引用的资料中有提到错误代码2003、2059、1251,但没有直接提到1215。这可能意味着用户的问题与MySQL相关,而不是Navicat本身的版本问题。错误代码1215通常与MySQL的外键约束有关,比如在创建外键时不符合条件,导致无法添加。 接下来,我需要检查用户提供的引用内容是否有相关信息。引用[1]到[4]主要涉及连接问题,如2003连接失败、2059认证插件问题、1251客户端兼容性问题。虽然这些引用没有直接提到1215,但可能用户在使用Navicat操作MySQL时遇到了外键错误,而错误代码1215是MySQL返回的,并非Navicat本身的错误。因此,用户可能需要解决的是MySQL中的外键约束问题,而不是Navicat的版本问题。 然后,考虑用户可能的真实需求。用户可能在使用Navicat进行数据库操作时遇到了错误1215,并希望找到解决方法。因此,回答应集中在MySQL错误1215的解释和解决方法上,并说明如何通过Navicat来处理。同时,用户可能想确认Navicat是否有特定的版本支持或修复了相关问题,但根据现有资料,错误1215通常与数据库配置有关,而非客户端工具版本。 最后,生成相关问题时要围绕MySQL错误1215的原因、解决方法、Navicat中的处理步骤,以及如何预防这类错误。需要确保回答结构清晰,引用相关参考资料,并指导用户进行正确的排查步骤。</think>关于Navicat相关错误代码1215的信息,根据现有资料分析如下: 1. **错误代码1215的定位** - 该错误属于MySQL数据库引擎返回的约束性错误,具体对应"ERROR 1215 (HY000): Cannot add foreign key constraint" - 发生在创建外键约束时,当主从表字段定义不匹配或违反外键约束规则时触发[^1][^2] 2. **常见触发场景** - 主表缺少对应索引 - 字段数据类型/字符集不一致(如主表INT(11)与从表VARCHAR(20)关联) - 存储引擎不支持外键(如MyISAM引擎) - 外键字段存在符号位差异(主表UNSIGNED,从表SIGNED) 3. **通过Navicat的解决方法** ```sql -- 检查表结构一致性示例 SHOW CREATE TABLE 主表; SHOW CREATE TABLE 从表; -- 验证索引配置 ALTER TABLE 主表 ADD INDEX (关联字段); -- 修改存储引擎(需提前备份) ALTER TABLE 从表 ENGINE=InnoDB; ``` 4. **版本兼容性说明** - Navicat 12.1.5版本已支持完整的MySQL外键管理功能 - 建议使用Navicat 16.x最新版获得更完善的外键约束检查提示 - 可通过`Help > About Navicat`查看当前版本信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值