iOS开发常见问题

如何显示和隐藏文件

显示隐藏文件: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

  1. 在Build Phases中选择Link Binary With Libraries, 修改包含库/框架;
  2. 在Build Phases中选择Copy Bundle Resources, 修改输出文件;
  3. $(SRCROOT) 指xcodeproj文件所在的目录
  4. $(PROJECT_DIR) .xcodeproj所在目录
  5. $(SDKROOT) SDK目录, 例如: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/
  6. $(PRODUCT_NAME) 指产品名

如何申请和使用开发者账号

  1. https://developer.apple.com/devcenter/ios/index.action
  2. http://blog.csdn.net/htttw/article/details/7981395
  3. http://blog.csdn.net/nogodoss/article/details/8217062
  4. http://blog.163.com/moon_walker/blog/static/213179094201302811313527/ === 开发者账号申请
  5. http://blog.csdn.net/totogo2010/article/details/8854879 === 企业账号

软件在iTunes中的网络地址

  1. https://itunes.apple.com/lookup?id=873915713
  2. https://itunes.apple.com/app/remote/id873915713
  3. itms-apps://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftwareUpdate?id=873915713

一些开发相关的知识

  1. 旋转缩放 http://blog.csdn.net/likendsl/article/details/7595611
  2. 绘图相关 http://blog.csdn.net/likendsl/article/details/7595905
  3. 网页控件 http://www.cppblog.com/iuranus/archive/2011/03/22/142509.html
  4. 网页控件 http://blog.163.com/jianwen2010@126/blog/static/11650363620123123729339/
  5. ffmpeg http://blog.csdn.net/balderfan/article/details/7459849
  6. ffmpeg http://www.cnblogs.com/smileEvday/archive/2013/11/21/ffmpeg.html
  7. UITouch http://justcoding.iteye.com/blog/1473287
  8. ModalView http://blog.sina.com.cn/s/blog_7b9d64af0101a0bf.html
  9. IOS设计指导 http://www.cocoachina.com/newbie/basic/2013/1225/7607.html
  10. 自动布局 http://blog.csdn.net/lizhongfu2013/article/details/8861855
  11. Web服务器 http://blog.csdn.net/crycheng/article/details/23031447
  12. 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+zcmd+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相关

  1. sh 脚本文件名
  2. 运行脚本命令
  3. sh /clean (执行脚本cleam.sh)
  4. man
  5. 查看命令的详细帮助
  6. man ls (查看 ls 命令的详细用法)
  7. mkdir
  8. 创建一个目录
  9. mkdir dirname
  10. rmdir
  11. 删除一个目录
  12. rmdir dirname
  13. mvdir
  14. 移动或重命名一个目录
  15. mvdir olddirpath newdirpath
  16. mvdir olddirname newdirname
  17. cd
  18. 改变当前目录
  19. cd dirname
  20. pwd
  21. 显示当前目录的路径名
  22. pwd
  23. ls
  24. 显示当前目录的内容, -w 显示中文, -l 详细信息, -a 包括隐藏文件
  25. ls -la (显示当前目录的详细信息, 并且包含了隐藏文件)
  26. dircmp
  27. 比较两个目录的内容
  28. dircmp dir1 dir2
  29. cat
  30. 显示或连接文件
  31. cat filename
  32. pg
  33. 分页格式化显示文件内容
  34. pg filename
  35. more
  36. 分屏显示文件内容
  37. more filename
  38. od
  39. 显示非文本文件的内容
  40. od -c filename
  41. cp
  42. 复制文件或目录
  43. cp srcfile dstfile
  44. cp -R /System/Library/Extensions/* /User/用户名/Desktop/backup (-R 表示对目录进行递归操作, 把驱动目录下的所有文件备份到桌面backup)
  45. rm
  46. 删除文件或目录
  47. rm filename (删除文件)
  48. rm dirname -rf (-rf 表示递归和强制, 删除文件夹及其子目录)
  49. mv
  50. 改变文件名或所在目录
  51. mv oldfilename newfilename
  52. mv olddirname newdirname
  53. ln
  54. 联接文件
  55. ln -s file1 file2
  56. find
  57. 使用匹配表达式查找文件
  58. find . -name "*.c" -print
  59. file
  60. 显示文件类型
  61. file filename
  62. head
  63. 显示文件的最初几行
  64. head -20 filename
  65. tail
  66. 显示文件的最后几行
  67. tail -15 filename
  68. cut
  69. 显示文件每行中的某些域
  70. cut -f1, 7 -d: /etc/passwd
  71. colrm
  72. 从标准输入中删除若干列
  73. colrm 8 20 file2
  74. paste
  75. 横向连接文件
  76. paste file1 file2
  77. diff
  78. 比较并显示两个文件的差异
  79. diff file1 file2
  80. sed
  81. 非交互方式流编辑器
  82. sed "s/red/green/g" filename
  83. grep
  84. 在文件中按模式查找
  85. grep "^[a-zA-Z]" filename
  86. awk
  87. 在文件中查找并处理模式
  88. awk '{print $1 $1}' filename
  89. sort
  90. 排序或归并文件
  91. sort -d -f -u file1
  92. uniq
  93. 去掉文件中的重复行
  94. uniq file1 file2
  95. comm
  96. 显示两有序文件的公共和非公共行
  97. comm file1 file2
  98. wc
  99. 统计文件的字符数、词数和行数
  100. wc filename
  101. nl
  102. 给文件加上行号
  103. nl file1 >file2
  104. passwd
  105. 修改用户密码
  106. passwd
  107. chmod
  108. 改变文件或目录的权限
  109. chmod 参数 权限 文件
  110. chmod ug+x filename
  111. chmod -R 755 /System/Library/Extensions (-R 表示递归, 755表示各用户的权限, 把驱动目录下所有文件设定到root读写, 其他用户只读)
  112. umask
  113. 定义创建文件的权限掩码
  114. umask 027
  115. chown
  116. 改变文件或目录的属主
  117. chown 参数 用户:组 文件
  118. chown newowner filename
  119. chown -R root:wheel /System/Library/Extensions (-R 表示递归, 把驱动目录下的所有文件属主改成根用户)
  120. chgrp
  121. 改变文件或目录的所属组
  122. chgrp staff filename
  123. xlock
  124. 给终端上锁
  125. xlock -remote
  126. make
  127. 维护可执行程序的最新版本
  128. make
  129. touch
  130. 更新文件的访问和修改时间
  131. touch -m 05202400 filename
  132. dbx
  133. 命令行界面调试工具
  134. dbx a.out
  135. xde
  136. 图形用户界面调试工具
  137. xde a.out
  138. ps
  139. 显示进程当前状态
  140. ps u
  141. kill
  142. 终止进程
  143. kill -9 30142
  144. nice
  145. 改变待执行命令的优先级
  146. nice cc -c *.c
  147. renice
  148. 改变已运行进程的优先级
  149. renice +20 32768
  150. date
  151. 显示系统的当前日期和时间
  152. date
  153. cal
  154. 显示日历
  155. cal 8 1996
  156. time
  157. 统计程序的执行时间
  158. time a.out
  159. telnet
  160. 远程登录
  161. telnet hpc.sp.net.edu.cn
  162. rlogin
  163. 远程登录
  164. rlogin hostname -l username
  165. rsh
  166. 在远程主机执行指定命令
  167. rsh f01n03 date
  168. ftp
  169. 在本地主机与远程主机之间传输文件
  170. ftp ftp.sp.net.edu.cn
  171. rcp
  172. 在本地主机与远程主机 之间复制文件
  173. rcp file1 host1:file2
  174. ping
  175. 给一个网络主机发送 回应请求
  176. ping hpc.sp.net.edu.cn
  177. mail
  178. 阅读和发送电子邮件
  179. mail
  180. write
  181. 给另一用户发送报文
  182. write username pts/1
  183. mesg
  184. 允许或拒绝接收报文
  185. mesg n
  186. history
  187. 列出最近执行过的 几条命令及编号
  188. history
  189. r
  190. 重复执行最近执行过的 某条命令
  191. r -2
  192. alias
  193. 给某个命令定义别名
  194. alias del=rm -i
  195. unalias
  196. 取消对某个别名的定义
  197. unalias del
  198. uname
  199. 显示操作系统的有关信息
  200. uname -a
  201. clear
  202. 清除屏幕或窗口内容
  203. clear
  204. env
  205. 显示当前所有设置过的环境变量
  206. env
  207. who
  208. 列出当前登录的所有用户
  209. who
  210. whoami
  211. 显示当前正进行操作的用户名
  212. whoami
  213. tty
  214. 显示终端或伪终端的名称
  215. tty
  216. stty
  217. 显示或重置控制键定义
  218. stty -a
  219. du
  220. 查询磁盘使用情况
  221. du -k subdir
  222. df
  223. 显示文件系统的总空间和可用空间
  224. df /tmp
  225. w
  226. 显示当前系统活动的总信息

git相关

  1. git config
  2. 设置本地git参数, 这个配置文件在'/Users/用户名'目录下
  3. git config --global user.name 'vision66'
  4. git config --global user.email 'vision66@126.com'
  5. git clone
  6. 从服务器获取代码到本地指定文件夹, 并将这个文件夹设置为git工作目录
  7. git clone http://git.oschina.net/vision66/iOS-MultiMedia.git loc_git_folder
  8. git status -s
  9. 取得当前项目的状态, 输出的文件名之前有两个字母, 第一个字母表示缓存文件的状态, 第二个字母表示本地文件的状态. (? 文件没有被追踪. A 文件被添加. M 文件被修改. D 文件被删除)
  10. git status -s
  11. git add
  12. 将更改提交到索引
  13. git add . (添加当前目录, 及其所有子目录)
  14. git add * (添加当前目录, 不包括子目录)
  15. git add myfile1.txt myfile2.txt (添加指定文件, 可以同时添加多个文件)
  16. git commit -m
  17. 将索引提交到缓存
  18. git commit -m "my_description_xxxx"
  19. git commit -am "my_description_xxxx" (将git add直接包含在git commit中)
  20. git push
  21. 将缓冲提交到服务器
  22. git push -u origin master
  23. git checkout
  24. 将本地文件恢复成git服务器文件, 应该在git add之前使用
  25. git checkout -- myfile.txt
  26. git rm
  27. 从本地以及缓存中删除文件
  28. git rm myfile.txt (从本地以及缓存中删除文件)
  29. git rm --cached myfile.txt (从缓存中删除文件)
  30. git reset
  31. 将已经git add之后的状态, 恢复到git add之前
  32. 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表

八进制十六进制十进制字符八进制十六进制十进制字符
000nul1004064@
111soh1014165A
222stx1024266B
333etx1034367C
444eot1044468D
555enq1054569E
666ack1064670F
777bel1074771G
1088bs1104872H
1199ht1114973I
120a10nl1124a74J
130b11vt1134b75K
140c12ff1144c76L
150d13cr1154d77M
160e14so1164e78N
170f15si1174f79O
201016dle1205080P
211117dc11215181Q
221218dc21225282R
231319dc31235383S
241420dc41245484T
251521nak1255585U
261622syn1265686V
271723etb1275787W
301824can1305888X
311925em1315989Y
321a26sub1325a90Z
331b27esc1335b91[
341c28fs1345c92\
351d29gs1355d93]
361e30re1365e94^
371f31us1375f95_
402032sp1406096'
412133!1416197a
422234"1426298b
432335#1436399c
442436$14464100d
452537%14565101e
462638&14666102f
472739`14767103g
502840(15068104h
512941)15169105i
522a42*1526a106j
532b43+1536b107k
542c44,1546c108l
552d45-1556d109m
562e46.1566e110n
572f47/1576f111o
603048016070112p
613149116171113q
623250216272114r
633351316373115s
643452416474116t
653553516575117u
663654616676118v
673755716777119w
703856817078120x
713957917179121y
723a58:1727a122z
733b59;1737b123{
743c60<1747c124|
753d61=1757d125}
763e62>1767e126~
773f63?1777f127del

正则表达式

元字符描述
\将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“\\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匹配版权符号(&copy;)。
\< \>匹配词(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 Plus1080x1920414x736414x736@3x
iPhone6 / iPhone6S750x1334375x667375x667@2x
iPhone5 / iPhone5S / iPhone5C640x1136320x568320x568@2x
iPhone4 / iPhone4S640x960320x480320x480@2x
iPad Mini768x1024768x1024768x1024@2x
iPad Mini 2 / iPad Air1536x2048768x1024768x1024@2x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值