Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

史上最复杂的验证邮件地址的正则表达式

史上最复杂的验证邮件地址的正则表达式

用正则表达式验证邮件地址似乎是一件简单的事情,但是如果要完美的验证一个合规的邮件地址,其实也许很复杂。邮件地址的规范来自于 RFC 5322。有一个网站 emailregex.com专门列出各种编程语言下的验证邮件地址的正则表达式,其中很多正则表达式都是我听说过而从未见过的复杂——我想说,做这个网站的程序员是被邮件验证这件事伤害了多深啊!其实,在产品环境中,一般来说并不需要这么复杂的正则表达式来做到99.99%正确。一般来说,从执行...
面向 C++ 的测试驱动开发

面向 C++ 的测试驱动开发

用测试的方法驱动开发,这个概念的提出已经很长时间了,但测试驱动开发在 C 和 C++的应用和实践却比较晚,本文用一个简单项目的实例说明如何在 C 和 C++的开发过程中,应用测试驱动开发的理念,从需求定义,代码测试案例设计到开发实现这些案例定义的需求,展现了测试驱动开发的魅力。测试驱动开发和现在流行敏捷开发的是分不开的,测试驱动开发是敏捷开发的一个强有力工具,可以帮助我们从简单的设计开始,逐步地有保护重构设计直至完善设计的过程。测试驱动开发(TDD)背景及...
学习Linux的编码风格

学习Linux的编码风格

对于编码,每个码农或许都会有自己的一套风格,很多人可能对编码风格压根就不关心,因为最终编译器编译出来的目标代码并不会受影响。但是在开发一个大型项目时,花费时间成本最多的永远是开发者们之间的沟通与交流。保持编码风格的一致性可以在很大程度上提高编码效率,可以让其他人更容易读懂你的代码,也让你更容易读懂其他人的代码。 在选择编码风格上,个人更青睐于Linux的编码风格,所以特意总结了一下:1、缩进 Linux的缩进风格是用制表符(tab)每次缩进八个字符长度...
Shell编程之正则表达式

Shell编程之正则表达式

什么是正则表达式?正则表达式是用于描述字符排列和匹配模式的一种语法规则。在很多程序设计语言中都支持利用正则表达式来进行字符串的操作,不同语言中的正则表达式略有不同,但是毕竟都是正则,其本质思想都是一致的,当我们掌握了shell中的正则后,再去看python或者perl里面的正则表达式时,会发现其实都是一样的东东。 在shell的一些命令中,有些并不支持正则表达式,但是它们支持Linux里面的通配符,那么通配符又是什么东东呢,它跟正则表达式又有什么关系? ...
深入理解C语言

深入理解C语言

语言只是一种工具,任何语言之间都是相通的,一通则百通,关键是要理解语言背后的思想,理解其思想,任何语言,拿来用就行了。语言没有好坏之分,任何语言既然存在自然有它存在的价值。 在一个到处是OOP的年代,为何面向过程的C语言依然可以如此活跃?这主要得益于C语言本身的语言特性。C语言小巧灵活,而且还有一个直接与硬件打交道的指针的存在,所以它是嵌入式开发唯有的高级语言;正因为他的小巧灵活,我们可以用它来开发一系列的小工具,Unix/Linux就是由这些小工具组成...
C语言关键字详解

C语言关键字详解

相对于其他语言来说,C语言的关键字算是少的了。在C98中关键子总共只有32个,我们来分析一下每个关键字在C语言中它独特的作用。1、关于数据类型的关键字 (1) char :声明字符型变量或函数 (2) double :声明双精度变量或函数 (3) enum :声明枚举类型 enum类型可以增加可读性,可移植性;在enum中定义的每个对象,默认都是从0开始,当然也可以自定义。如下:enum Color{RED,BLACK,WHITE};enum ...
使用值类型构建更好的Swift应用程序

使用值类型构建更好的Swift应用程序

在WWDC2015上,苹果工程师Doug Gregor和Bill Dudney 评价 了Swift对值类型的支持,并解释了如何通过它实现一种灵活的不可变性,以构建更好的应用。Gregor首先评价了Objective-C中常用的引用语义。引用语义的主要问题在于它有可能产生预期之外的对象共享行为,这种行为有可能导致 对象的属性 被暗中改动。Objective-C程序员对此已经十分了解了,因为许多Cocoa和Cocoa Touch类,像NSString、NSUR...
Java 9新功能之HTTP2和REPL

Java 9新功能之HTTP2和REPL

对Java 9的炒作将不再局限于模块化(modularity),Java 9正在搜罗大量额外的功能模块,这些功能模块正作为Java增强提案(JEP)提交,并在OpenJDK (Java SE的参考实现项目)中实现。在这篇文章中,我们将重点关注一些或将在Java 9整个生命周期中,对开发者的工作生活影响最大的JEP,包括新的HTTP/2支持和JShell REPL(读取-求值-打印-循环),后者带来了基于shell的交互式Java开发环境和探索性开发API。...
iOS中的事件传递和响应者链条

iOS中的事件传递和响应者链条

首先我们来看看iOS中事件的产生和传递过程:1.发生触摸事件后,系统会将该事件加入到一个由UIApplication管理的队列事件中2.UIApplication会从事件队列中取出最前面的事件,并将事件分发下去以便处理,通常会先发送事件给应用程序的主窗口(keyWindow)3.主窗口会在视图层次结构中找到一个最合适的视图来处理触摸事件4.找到合适的视图控件后,就会调用视图控件的touches方法来作事件的具体处理:touchesBegin... touc...
Android开发学习之Fragment解析

Android开发学习之Fragment解析

1.定义Fragment中文解释是碎片的意思,主要用在大屏幕设备上,例如平板电脑上,支持更加动态和灵活的UI设计。Fragment在你的应用中相当于是一个模块化和可重用的组件,因为Fragment定义了它自己的布局,以及通过使用它自己的生命周期回调方法定义了它自己的行为,你可以将Fragment包含到多个Activity中。2.特点(1)Fragment可以作为Activity界面的一部分组成出现;(2)可以在一个Activity中同时出现多个Fragme...
Android开发学习之Adapter(数据适配器)

Android开发学习之Adapter(数据适配器)

1.定义 数据适配器是AdapterView视图(如ListView - 列表视图控件、Gallery -缩略图浏览器控件、GridView -网格控件、Spinner - 下拉列表控件、AutoCompleteTextView - 自动提示文本框、ExpandableListView - 支持展开/收缩功能的列表控件等)与数据之间的桥梁,用来处理数据并将数据绑定到AdapterView上。2.作用 数据适配器是连接数据源和视图界面的桥梁。3.分类 包...
Android 屏幕旋转 处理 AsyncTask 和 ProgressDialog 的最佳方案

Android 屏幕旋转 处理 AsyncTask 和 ProgressDialog 的最佳方案

众所周知,Activity在不明确指定屏幕方向和configChanges时,当用户旋转屏幕会重新启动。当然了,应对这种情况,Android给出了几种方案:a、如果是少量数据,可以通过onSaveInstanceState()和onRestoreInstanceState()进行保存与恢复。Android会在销毁你的Activity之前调用onSaveInstanceState()方法,于是,你可以在此方法中存储关于应用状态的数据。然后你可以在onCrea...
Android 官方推荐:DialogFragment 创建对话框

Android 官方推荐:DialogFragment 创建对话框

1、 概述DialogFragment在Android 3.0时被引入。是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框。典型的用于:展示警告框,输入框,确认框等等。在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog。注:官方不推荐直接使用Dialog创建对话框。2、 好处与用法使用DialogFragment来管理对话框,当旋转屏幕和按下后退键时可以更好的管理其声明周期,...
Android Fragment 真正的完全解析

Android Fragment 真正的完全解析

上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和各种API。本篇将介绍上篇博客提到的:如何管理Fragment回退栈,Fragment如何与Activity交互,Fragment与Activity交互的最佳实践,没有视图的Fragment的用处,使用Fragment创建对话框,如何与ActionBar,MenuItem集成等~~1、管理Fragment回退栈类似与Android系统为Activity维护一个任务栈,我们也可以通过Activ...
<< 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 >>