如何显示和隐藏文件
显示隐藏文件:defaults write com.apple.finder AppleShowAllFiles -bool true
隐藏隐藏文件:defaults write com.apple.finder AppleShowAllFiles -bool false
转换文件编码
从GB18030的 "mybook.txt" 转换成UTF8的 "mybook.txt.txt":
find mybook.txt -exec sh -c "iconv -f GB18030 -t UTF8 {} > {}.txt" \; (后面的\和;都是必须的)
解决Finder个人收藏中目录变成英文的方法
下载文件夹,downloads变回中文,打开“终端”,输入以下命令:
touch ~/downloads/.localized 回车,重启Finder
解决Xcode代码不高亮, 没有自动提示的问题
清空目录 /Users/weizhen/Library/Developer/Xcode/DerivedData/, 重启XCode
MacOSX 10.10上搭建Apache、PHP、MySQL的Web服务器
开启Apache服务器
开启Apache命令: sudo apachectl start
重启Apache命令: sudo apachectl restart
Apache的配置文件: /etc/apache2/httpd.conf
Apache的网站目录: /Library/WebServer/Documents (在配置文件中修改此目录, 即可绕开权限问题)
开启PHP模块
因MacOSX已经内置PHP, 因此我们只需要在Apache的配置中加载PHP模块即可。方法如:
1)在终端运行: sudo vi /etc/apache2/httpd.conf, 打开Apache配置文件。
2)找到条目 #LoadModule php5_module libexec/apache2/libphp5.so , 将注释符#去掉, 并保存。
3)终端运行: sudo apachectl restart, 重启Apache服务器。
使用Homebrew安装MySQL
1)安装Homebrew:
在MacOSX上安装软件, 你可以直接找到相关img安装, 也可以像Ubuntu的apt-get类似方便的, 可以使用brew install进行。当然, 使用此功能, 你需要安装Homebrew, 安装方法是:
在终端运行: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"。
2) 安装Mysql:
在终端运行: brew install mysql。
brew程序将自动安装mysql的依赖库openssl, 然后安装mysql, 我的安装的是: mysql-5.6.2。
3)启动MySQL:
根据上面安装结束的提示, 启动MySQL, 在终端运行: mysql.server start。启动成功后使用: mysql -uroot即可连接到MySQL数据库。
如何进入命令行操作模式
在图形界面下, 用finder 打开 应用程序 》实用程序 》终端
如果连图形界面都进不去了(比如安装错了显示驱动), 开机时按 F8, 用-s参数启动, 然后输入命令 mount -uw /
Objective-C与C与C++的混编
c文件会自动使用c编译器, cpp文件会自动使用c++编译器, m文件会自动使用objective-c编译器, mm文件会自动使用objective-c++编译器.
c编译器能够编译c代码, c++编译器能够编译c++/c代码, objective-c编译器能够编译m/c代码, objective-c++编译器能够编译m/mm/c++/c代码.
h文件被哪种文件包含(c/c++/objc/objc++), 就会使用对应的编译器, 但是m/mm文件在包含h文件时, h文件不能写有c++的类定义.
c/c++/objc对应的头文件都是h文件, 但是他们各自的h文件代码语法有差异, 所以呢:
1) c接口, m/mm/c/c++都可以使用它
2) c++接口, mm/c++可以使用它
3) m/mm接口, m/mm可以使用它
如何删除Xcode5中多余的provisioning profile
找到"~/Library/MobileDevice/Provisioning Profiles"目录, 删除目录下地的所有文件
调试模式下, 偶尔会出现SIGPIPE中断, 如何屏蔽SIGPIPE信号
在程序的[application: didFinishLaunchingWithOptions:]函数开始的地方加个断点, 程序运行到断点暂停时, 在lldb控制台中输入命令"process handle SIGPIPE -s false"
工程配置项的简单介绍. 参考 http://blog.csdn.net/freedom2028/article/details/8658819
- 在Build Phases中选择Link Binary With Libraries, 修改包含库/框架;
- 在Build Phases中选择Copy Bundle Resources, 修改输出文件;
- $(SRCROOT) 指xcodeproj文件所在的目录
- $(PROJECT_DIR) .xcodeproj所在目录
- $(SDKROOT) SDK目录, 例如: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/
- $(PRODUCT_NAME) 指产品名
如何申请和使用开发者账号
- https://developer.apple.com/devcenter/ios/index.action
- http://blog.csdn.net/htttw/article/details/7981395
- http://blog.csdn.net/nogodoss/article/details/8217062
- http://blog.163.com/moon_walker/blog/static/213179094201302811313527/ === 开发者账号申请
- http://blog.csdn.net/totogo2010/article/details/8854879 === 企业账号
软件在iTunes中的网络地址
- https://itunes.apple.com/lookup?id=873915713
- https://itunes.apple.com/app/remote/id873915713
- itms-apps://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftwareUpdate?id=873915713
一些开发相关的知识
- 旋转缩放 http://blog.csdn.net/likendsl/article/details/7595611
- 绘图相关 http://blog.csdn.net/likendsl/article/details/7595905
- 网页控件 http://www.cppblog.com/iuranus/archive/2011/03/22/142509.html
- 网页控件 http://blog.163.com/jianwen2010@126/blog/static/11650363620123123729339/
- ffmpeg http://blog.csdn.net/balderfan/article/details/7459849
- ffmpeg http://www.cnblogs.com/smileEvday/archive/2013/11/21/ffmpeg.html
- UITouch http://justcoding.iteye.com/blog/1473287
- ModalView http://blog.sina.com.cn/s/blog_7b9d64af0101a0bf.html
- IOS设计指导 http://www.cocoachina.com/newbie/basic/2013/1225/7607.html
- 自动布局 http://blog.csdn.net/lizhongfu2013/article/details/8861855
- Web服务器 http://blog.csdn.net/crycheng/article/details/23031447
- vi编辑器 http://blog.csdn.net/xueziheng/article/details/2048054
Mac系统的快捷键
命令 | 描述 |
cmd+o | 打开文件/文件夹 |
cmd+下箭头 | 同 cmd+o |
cmd+上箭头 | 返回上层目录 |
cmd+tab | 在程序间切换 |
cmd+` | 在同一程序的不同窗口间切换 |
cmd+alt+shift+esc | 强制退出当前程序, 不会有提示 |
cmd+z | 撤销, 多次按下会不断往回退, 不会跨文件, 每个文件有各自的cmd+z |
cmd+shift+z | cmd+z的反向操作 |
cmd+x | 剪切 |
cmd+c | 复制 |
cmd+v | 粘贴 |
cmd+shift+4 | 开启截图, 然后鼠标拉出一个框, 松开后截出图像, 自动退出截图状态, 图片在桌面 |
cmd+shift+4+space | 开启截图, 选中指定窗口后, 自动退出截图状态, 选中窗口的图片保存在桌面 |
Xcode的快捷键
命令 | 描述 |
ctrl+cmd+上箭头 | 在同名的头文件与源文件之间切换 |
ctrl+cmd+下箭头 | 同 ctrl+cmd+上箭头 |
ctrl+cmd+左箭头 | 切换到上一次编辑的文件, 但是并不能定位到上一次编辑的位置 |
ctrl+cmd+右箭头 | 同 ctrl+cmd+左箭头 进行反向操作 |
esc | 列举出类成员alt 查看开发文档 |
ctrl+i | 格式化选中的代码 |
cmd+shift+alt+左箭头 | 折叠当前页面所有函数 |
cmd+shift+alt+右箭头 | 展开当前页面所有函数 |
cmd+alt+左箭头 | 折叠当前代码段 |
cmd+alt+右箭头 | 展开当前代码段 |
cmd相关
- sh 脚本文件名
- 运行脚本命令
- sh /clean (执行脚本cleam.sh)
- man
- 查看命令的详细帮助
- man ls (查看 ls 命令的详细用法)
- mkdir
- 创建一个目录
- mkdir dirname
- rmdir
- 删除一个目录
- rmdir dirname
- mvdir
- 移动或重命名一个目录
- mvdir olddirpath newdirpath
- mvdir olddirname newdirname
- cd
- 改变当前目录
- cd dirname
- pwd
- 显示当前目录的路径名
- pwd
- ls
- 显示当前目录的内容, -w 显示中文, -l 详细信息, -a 包括隐藏文件
- ls -la (显示当前目录的详细信息, 并且包含了隐藏文件)
- dircmp
- 比较两个目录的内容
- dircmp dir1 dir2
- cat
- 显示或连接文件
- cat filename
- pg
- 分页格式化显示文件内容
- pg filename
- more
- 分屏显示文件内容
- more filename
- od
- 显示非文本文件的内容
- od -c filename
- cp
- 复制文件或目录
- cp srcfile dstfile
- cp -R /System/Library/Extensions/* /User/用户名/Desktop/backup (-R 表示对目录进行递归操作, 把驱动目录下的所有文件备份到桌面backup)
- rm
- 删除文件或目录
- rm filename (删除文件)
- rm dirname -rf (-rf 表示递归和强制, 删除文件夹及其子目录)
- mv
- 改变文件名或所在目录
- mv oldfilename newfilename
- mv olddirname newdirname
- ln
- 联接文件
- ln -s file1 file2
- find
- 使用匹配表达式查找文件
- find . -name "*.c" -print
- file
- 显示文件类型
- file filename
- head
- 显示文件的最初几行
- head -20 filename
- tail
- 显示文件的最后几行
- tail -15 filename
- cut
- 显示文件每行中的某些域
- cut -f1, 7 -d: /etc/passwd
- colrm
- 从标准输入中删除若干列
- colrm 8 20 file2
- paste
- 横向连接文件
- paste file1 file2
- diff
- 比较并显示两个文件的差异
- diff file1 file2
- sed
- 非交互方式流编辑器
- sed "s/red/green/g" filename
- grep
- 在文件中按模式查找
- grep "^[a-zA-Z]" filename
- awk
- 在文件中查找并处理模式
- awk '{print $1 $1}' filename
- sort
- 排序或归并文件
- sort -d -f -u file1
- uniq
- 去掉文件中的重复行
- uniq file1 file2
- comm
- 显示两有序文件的公共和非公共行
- comm file1 file2
- wc
- 统计文件的字符数、词数和行数
- wc filename
- nl
- 给文件加上行号
- nl file1 >file2
- passwd
- 修改用户密码
- passwd
- chmod
- 改变文件或目录的权限
- chmod 参数 权限 文件
- chmod ug+x filename
- chmod -R 755 /System/Library/Extensions (-R 表示递归, 755表示各用户的权限, 把驱动目录下所有文件设定到root读写, 其他用户只读)
- umask
- 定义创建文件的权限掩码
- umask 027
- chown
- 改变文件或目录的属主
- chown 参数 用户:组 文件
- chown newowner filename
- chown -R root:wheel /System/Library/Extensions (-R 表示递归, 把驱动目录下的所有文件属主改成根用户)
- chgrp
- 改变文件或目录的所属组
- chgrp staff filename
- xlock
- 给终端上锁
- xlock -remote
- make
- 维护可执行程序的最新版本
- make
- touch
- 更新文件的访问和修改时间
- touch -m 05202400 filename
- dbx
- 命令行界面调试工具
- dbx a.out
- xde
- 图形用户界面调试工具
- xde a.out
- ps
- 显示进程当前状态
- ps u
- kill
- 终止进程
- kill -9 30142
- nice
- 改变待执行命令的优先级
- nice cc -c *.c
- renice
- 改变已运行进程的优先级
- renice +20 32768
- date
- 显示系统的当前日期和时间
- date
- cal
- 显示日历
- cal 8 1996
- time
- 统计程序的执行时间
- time a.out
- telnet
- 远程登录
- telnet hpc.sp.net.edu.cn
- rlogin
- 远程登录
- rlogin hostname -l username
- rsh
- 在远程主机执行指定命令
- rsh f01n03 date
- ftp
- 在本地主机与远程主机之间传输文件
- ftp ftp.sp.net.edu.cn
- rcp
- 在本地主机与远程主机 之间复制文件
- rcp file1 host1:file2
- ping
- 给一个网络主机发送 回应请求
- ping hpc.sp.net.edu.cn
- 阅读和发送电子邮件
- write
- 给另一用户发送报文
- write username pts/1
- mesg
- 允许或拒绝接收报文
- mesg n
- history
- 列出最近执行过的 几条命令及编号
- history
- r
- 重复执行最近执行过的 某条命令
- r -2
- alias
- 给某个命令定义别名
- alias del=rm -i
- unalias
- 取消对某个别名的定义
- unalias del
- uname
- 显示操作系统的有关信息
- uname -a
- clear
- 清除屏幕或窗口内容
- clear
- env
- 显示当前所有设置过的环境变量
- env
- who
- 列出当前登录的所有用户
- who
- whoami
- 显示当前正进行操作的用户名
- whoami
- tty
- 显示终端或伪终端的名称
- tty
- stty
- 显示或重置控制键定义
- stty -a
- du
- 查询磁盘使用情况
- du -k subdir
- df
- 显示文件系统的总空间和可用空间
- df /tmp
- w
- 显示当前系统活动的总信息
git相关
- git config
- 设置本地git参数, 这个配置文件在'/Users/用户名'目录下
- git config --global user.name 'vision66'
- git config --global user.email 'vision66@126.com'
- git clone
- 从服务器获取代码到本地指定文件夹, 并将这个文件夹设置为git工作目录
- git clone http://git.oschina.net/vision66/iOS-MultiMedia.git loc_git_folder
- git status -s
- 取得当前项目的状态, 输出的文件名之前有两个字母, 第一个字母表示缓存文件的状态, 第二个字母表示本地文件的状态. (? 文件没有被追踪. A 文件被添加. M 文件被修改. D 文件被删除)
- git status -s
- git add
- 将更改提交到索引
- git add . (添加当前目录, 及其所有子目录)
- git add * (添加当前目录, 不包括子目录)
- git add myfile1.txt myfile2.txt (添加指定文件, 可以同时添加多个文件)
- git commit -m
- 将索引提交到缓存
- git commit -m "my_description_xxxx"
- git commit -am "my_description_xxxx" (将git add直接包含在git commit中)
- git push
- 将缓冲提交到服务器
- git push -u origin master
- git checkout
- 将本地文件恢复成git服务器文件, 应该在git add之前使用
- git checkout -- myfile.txt
- git rm
- 从本地以及缓存中删除文件
- git rm myfile.txt (从本地以及缓存中删除文件)
- git rm --cached myfile.txt (从缓存中删除文件)
- git reset
- 将已经git add之后的状态, 恢复到git add之前
- git reset HEAD -- myfile.txt
vim快捷键
命令 | 描述 |
进入vi的命令 | |
vi filename | 打开或新建文件, 并将光标置于第一行首 |
vi +n filename | 打开文件, 并将光标置于第n行首 |
vi + filename | 打开文件, 并将光标置于最后一行首 |
vi +/pattern filename | 打开文件, 并将光标置于第一个与pattern匹配的串处 |
vi -r filename | 在上次正用vi编辑时发生系统崩溃, 恢复filename |
vi filename ... filename | 打开多个文件, 依次进行编辑 |
移动光标类命令 | |
k或上箭头 | 光标上移一行 |
j或下箭头 | 光标下移一行 |
h或左箭头 | 光标左移一个字符 |
l或右箭头 | 光标右移一个字符 |
w | 光标右移一个词 |
W | 光标右移一个以空格分隔的词 |
b | 光标左移一个词 |
B | 光标左移一个以空格分隔的词 |
e或E | 光标右移一个字至字尾 |
( | 光标移至句首 |
) | 光标移至句尾 |
{ | 光标移至段落开头 |
} | 光标移至段落结尾 |
G | 光标移至最后一行 |
nG | 光标移至第n行首 |
n+ | 光标下移n行 |
n- | 光标上移n行 |
n$ | 光标移至第n行尾 |
H | 光标移至屏幕顶行 |
M | 光标移至屏幕中间行 |
L | 光标移至屏幕最后行 |
0 | 光标移至当前行首(注意是数字零) |
$ | 光标移至当前行尾 |
Ctrl+u | 向文件首翻半屏 |
Ctrl+d | 向文件尾翻半屏 |
Ctrl+f | 向文件尾翻一屏 |
Ctrl+b | 向文件首翻一屏 |
nz | 将第n行滚至屏幕顶部, 不指定n时将当前行滚至屏幕顶部 |
插入文本类命令 | |
i | 在光标前, 在当前字符前插入文本 |
I | 在当前行首, 在行首插入文本 |
a | 光标后, 在当前字符后添加文本 |
A | 在当前行尾, 在行末添加文本 |
o | 在当前行之下新开一行, 在当前行后面插入一空行 |
O | 在当前行之上新开一行, 在当前行前面插入一空行 |
r | 替换当前字符 |
R | 替换当前字符及其后的字符, 直至按ESC键; 以改写方式输入文本 |
s | 从当前光标位置处开始, 以输入的文本替代指定数目的字符 |
S | 删除指定数目的行, 并以所输入文本代替之 |
ncw或nCW | 修改指定数目的字 |
nCC | 修改指定数目的行 |
c | 修改文本直到按下Esc健 |
cw | 修改下一个词 |
cnw | 修改接下来的n个词 |
删除命令 | |
ndw或ndW | 删除光标处开始及其后的n-1个字 |
do | 删至行首 |
d$ | 删至行尾 |
ndd | 删除当前行及其后n-1行 |
x或X | 删除一个字符, x删除光标后的, 而X删除光标前的 |
Ctrl+u | 删除输入方式下所输入的文本 |
搜索及替换命令 | |
/pattern | 从光标开始处向文件尾搜索pattern |
?pattern | 从光标开始处向文件首搜索pattern |
n | 在同一方向重复上一次搜索命令 |
N | 在反方向上重复上一次搜索命令 |
:s/p1/p2/g | 将当前行中所有p1均用p2替代 |
:n1,n2s/p1/p2/g | 将第n1至n2行中所有p1均用p2替代 |
:g/p1/s//p2/g | 将文件中所有p1均用p2替换 |
选项设置 | |
all | 列出所有选项设置情况 |
term | 设置终端类型 |
ignorance | 在搜索中忽略大小写 |
list | 显示制表位(Ctrl+I)和行尾标志($) |
number | 显示行号 |
report | 显示由面向行的命令修改过的数目 |
terse | 显示简短的警告信息 |
warn | 在转到别的文件时若没保存当前文件则显示NO write信息 |
nomagic | 允许在搜索模式中, 使用前面不带“\”的特殊字符 |
nowrapscan | 禁止vi在搜索到达文件两端时, 又从另一端开始 |
mesg | 允许vi显示其他用户用write写到自己终端上的信息 |
最后行方式命令 | |
:n1,n2 co n3 | 将n1行到n2行之间的内容拷贝到第n3行下 |
:n1,n2 m n3 | 将n1行到n2行之间的内容移至到第n3行下 |
:n1,n2 d | 将n1行到n2行之间的内容删除 |
:w | 保存当前文件 |
:e filename | 打开文件filename进行编辑 |
:x | 保存当前文件并退出 |
:q | 退出vi |
:q! | 不保存文件并退出vi |
:!command | 执行shell命令command |
:n1,n2 w!command | 将文件中n1行至n2行的内容作为command的输入并执行之, 若不指定n1, n2, 则表示将整个文件内容作为command的输入 |
:r!command | 将命令command的输出结果放到当前行 |
寄存器操作 | |
?nyy | 将当前行及其下n行的内容保存到寄存器?中, 其中?为一个字母, n为一个数字 |
?nyw | 将当前行及其下n个字保存到寄存器?中, 其中?为一个字母, n为一个数字 |
?nyl | 将当前行及其下n个字符保存到寄存器?中, 其中?为一个字母, n为一个数字 |
?p | 取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母, 也可以是一个数字 |
ndd | 将当前行及其下共n行文本删除, 并将所删内容放到1号删除寄存器中 |
ACSII表
八进制 | 十六进制 | 十进制 | 字符 | 八进制 | 十六进制 | 十进制 | 字符 |
0 | 0 | 0 | nul | 100 | 40 | 64 | @ |
1 | 1 | 1 | soh | 101 | 41 | 65 | A |
2 | 2 | 2 | stx | 102 | 42 | 66 | B |
3 | 3 | 3 | etx | 103 | 43 | 67 | C |
4 | 4 | 4 | eot | 104 | 44 | 68 | D |
5 | 5 | 5 | enq | 105 | 45 | 69 | E |
6 | 6 | 6 | ack | 106 | 46 | 70 | F |
7 | 7 | 7 | bel | 107 | 47 | 71 | G |
10 | 8 | 8 | bs | 110 | 48 | 72 | H |
11 | 9 | 9 | ht | 111 | 49 | 73 | I |
12 | 0a | 10 | nl | 112 | 4a | 74 | J |
13 | 0b | 11 | vt | 113 | 4b | 75 | K |
14 | 0c | 12 | ff | 114 | 4c | 76 | L |
15 | 0d | 13 | cr | 115 | 4d | 77 | M |
16 | 0e | 14 | so | 116 | 4e | 78 | N |
17 | 0f | 15 | si | 117 | 4f | 79 | O |
20 | 10 | 16 | dle | 120 | 50 | 80 | P |
21 | 11 | 17 | dc1 | 121 | 51 | 81 | Q |
22 | 12 | 18 | dc2 | 122 | 52 | 82 | R |
23 | 13 | 19 | dc3 | 123 | 53 | 83 | S |
24 | 14 | 20 | dc4 | 124 | 54 | 84 | T |
25 | 15 | 21 | nak | 125 | 55 | 85 | U |
26 | 16 | 22 | syn | 126 | 56 | 86 | V |
27 | 17 | 23 | etb | 127 | 57 | 87 | W |
30 | 18 | 24 | can | 130 | 58 | 88 | X |
31 | 19 | 25 | em | 131 | 59 | 89 | Y |
32 | 1a | 26 | sub | 132 | 5a | 90 | Z |
33 | 1b | 27 | esc | 133 | 5b | 91 | [ |
34 | 1c | 28 | fs | 134 | 5c | 92 | \ |
35 | 1d | 29 | gs | 135 | 5d | 93 | ] |
36 | 1e | 30 | re | 136 | 5e | 94 | ^ |
37 | 1f | 31 | us | 137 | 5f | 95 | _ |
40 | 20 | 32 | sp | 140 | 60 | 96 | ' |
41 | 21 | 33 | ! | 141 | 61 | 97 | a |
42 | 22 | 34 | " | 142 | 62 | 98 | b |
43 | 23 | 35 | # | 143 | 63 | 99 | c |
44 | 24 | 36 | $ | 144 | 64 | 100 | d |
45 | 25 | 37 | % | 145 | 65 | 101 | e |
46 | 26 | 38 | & | 146 | 66 | 102 | f |
47 | 27 | 39 | ` | 147 | 67 | 103 | g |
50 | 28 | 40 | ( | 150 | 68 | 104 | h |
51 | 29 | 41 | ) | 151 | 69 | 105 | i |
52 | 2a | 42 | * | 152 | 6a | 106 | j |
53 | 2b | 43 | + | 153 | 6b | 107 | k |
54 | 2c | 44 | , | 154 | 6c | 108 | l |
55 | 2d | 45 | - | 155 | 6d | 109 | m |
56 | 2e | 46 | . | 156 | 6e | 110 | n |
57 | 2f | 47 | / | 157 | 6f | 111 | o |
60 | 30 | 48 | 0 | 160 | 70 | 112 | p |
61 | 31 | 49 | 1 | 161 | 71 | 113 | q |
62 | 32 | 50 | 2 | 162 | 72 | 114 | r |
63 | 33 | 51 | 3 | 163 | 73 | 115 | s |
64 | 34 | 52 | 4 | 164 | 74 | 116 | t |
65 | 35 | 53 | 5 | 165 | 75 | 117 | u |
66 | 36 | 54 | 6 | 166 | 76 | 118 | v |
67 | 37 | 55 | 7 | 167 | 77 | 119 | w |
70 | 38 | 56 | 8 | 170 | 78 | 120 | x |
71 | 39 | 57 | 9 | 171 | 79 | 121 | y |
72 | 3a | 58 | : | 172 | 7a | 122 | z |
73 | 3b | 59 | ; | 173 | 7b | 123 | { |
74 | 3c | 60 | < | 174 | 7c | 124 | | |
75 | 3d | 61 | = | 175 | 7d | 125 | } |
76 | 3e | 62 | > | 176 | 7e | 126 | ~ |
77 | 3f | 63 | ? | 177 | 7f | 127 | del |
正则表达式
元字符 | 描述 |
\ | 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“\\n”匹配\n。“\n”匹配换行符。序列“\\”匹配“\”而“\(”则匹配“(”。 |
^ | 匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。 |
$ | 匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。 |
* | 匹配前面的子表达式零次或多次(大于等于0次)。例如,zo*能匹配“z”,“zo”以及“zoo”。*等价于{0,}。 |
+ | 匹配前面的子表达式一次或多次(大于等于1次)。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。 |
? | 匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“do”或“does”中的“do”。?等价于{0,1}。 |
{n} | n是一个非负整数。匹配确定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o。 |
{n,} | n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o*”。 |
{n,m} | m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”中的前三个o。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。 |
? | 当该字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串“oooo”,“o+?”将匹配单个“o”,而“o+”将匹配所有“o”。 |
.点 | 匹配除“\r\n”之外的任何单个字符。要匹配包括“\r\n”在内的任何字符,请使用像“[\s\S]”的模式。 |
(pattern) | 匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中则使用$0…$9属性。要匹配圆括号字符,请使用“\(”或“\)”。 |
(?:pattern) | 匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用或字符“(|)”来组合一个模式的各个部分是很有用。例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式。 |
(?=pattern) | 正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。 |
(?!pattern) | 正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。 |
(?<=pattern) | 反向肯定预查,与正向肯定预查类似,只是方向相反。例如,“(?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”。 |
(?<!pattern) | 反向否定预查,与正向否定预查类似,只是方向相反。例如“(?<!95|98|NT|2000)Windows”能匹配“3.1Windows”中的“Windows”,但不能匹配“2000Windows”中的“Windows”。 |
x|y | 匹配x或y。例如,“z|food”能匹配“z”或“food”。“(z|f)ood”则匹配“zood”或“food”。 |
[xyz] | 字符集合。匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a”。 |
[^xyz] | 负值字符集合。匹配未包含的任意字符。例如,“[^abc]”可以匹配“plain”中的“plin”。 |
[a-z] | 字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。注意:只有连字符在字符组内部时,并且出现在两个字符之间时,才能表示字符的范围; 如果出字符组的开头,则只能表示连字符本身. |
[^a-z] | 负值字符范围。匹配任何不在指定范围内的任意字符。例如,“[^a-z]”可以匹配任何不在“a”到“z”范围内的任意字符。 |
\b | 匹配一个单词边界,也就是指单词和空格间的位置。例如,“er\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”。 |
\B | 匹配非单词边界。“er\B”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。 |
\cx | 匹配由x指明的控制字符。例如,\cM匹配一个Control-M或回车符。x的值必须为A-Z或a-z之一。否则,将c视为一个原义的“c”字符。 |
\d | 匹配一个数字字符。等价于[0-9]。 |
\D | 匹配一个非数字字符。等价于[^0-9]。 |
\f | 匹配一个换页符。等价于\x0c和\cL。 |
\n | 匹配一个换行符。等价于\x0a和\cJ。 |
\r | 匹配一个回车符。等价于\x0d和\cM。 |
\s | 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。 |
\S | 匹配任何非空白字符。等价于[^ \f\n\r\t\v]。 |
\t | 匹配一个制表符。等价于\x09和\cI。 |
\v | 匹配一个垂直制表符。等价于\x0b和\cK。 |
\w | 匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_]”,这里的"单词"字符使用Unicode字符集。 |
\W | 匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。 |
\xn | 匹配n,其中n为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,“\x41”匹配“A”。“\x041”则等价于“\x04&1”。正则表达式中可以使用ASCII编码。 |
\num | 匹配num,其中num是一个正整数。对所获取的匹配的引用。例如,“(.)\1”匹配两个连续的相同字符。 |
\n | 标识一个八进制转义值或一个向后引用。如果\n之前至少n个获取的子表达式,则n为向后引用。否则,如果n为八进制数字(0-7),则n为一个八进制转义值。 |
\nm | 标识一个八进制转义值或一个向后引用。如果\nm之前至少有nm个获得子表达式,则nm为向后引用。如果\nm之前至少有n个获取,则n为一个后跟文字m的向后引用。如果前面的条件都不满足,若n和m均为八进制数字(0-7),则\nm将匹配八进制转义值nm。 |
\nml | 如果n为八进制数字(0-7),且m和l均为八进制数字(0-7),则匹配八进制转义值nml。 |
\un | 匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。例如,\u00A9匹配版权符号(©)。 |
\< \> | 匹配词(word)的开始(\<)和结束(\>)。例如正则表达式\<the\>能够匹配字符串"for the wise"中的"the",但是不能匹配字符串"otherwise"中的"the"。注意:这个元字符不是所有的软件都支持的。 |
\( \) | 将 \( 和 \) 之间的表达式定义为“组”(group),并且将匹配这个表达式的字符保存到一个临时区域(一个正则表达式中最多可以保存9个),它们可以用 \1 到\9 的符号来引用。 |
| | 将两个匹配条件进行逻辑“或”(Or)运算。例如正则表达式(him|her) 匹配"it belongs to him"和"it belongs to her",但是不能匹配"it belongs to them."。注意:这个元字符不是所有的软件都支持的。 |
+ | 匹配1或多个正好在它之前的那个字符。例如正则表达式9+匹配9、99、999等。注意:这个元字符不是所有的软件都支持的。 |
? | 匹配0或1个正好在它之前的那个字符。注意:这个元字符不是所有的软件都支持的。 |
{i} {i,j} | 匹配指定数目的字符,这些字符是在它之前的表达式定义的。例如正则表达式A[0-9]{3} 能够匹配字符"A"后面跟着正好3个数字字符的串,例如A123、A348等,但是不匹配A1234。而正则表达式[0-9]{4,6} 匹配连续的任意4个、5个或者6个数字 |
常见的设备, 屏幕尺寸有哪些
设备名称 | 设备分辨率 | 模拟器点阵 | 图片格式 |
iPhone6 Plus / iPhone6S Plus | 1080x1920 | 414x736 | 414x736@3x |
iPhone6 / iPhone6S | 750x1334 | 375x667 | 375x667@2x |
iPhone5 / iPhone5S / iPhone5C | 640x1136 | 320x568 | 320x568@2x |
iPhone4 / iPhone4S | 640x960 | 320x480 | 320x480@2x |
iPad Mini | 768x1024 | 768x1024 | 768x1024@2x |
iPad Mini 2 / iPad Air | 1536x2048 | 768x1024 | 768x1024@2x |