常用代码和知识点速查
adb 命令
给单个目录添加读写权限
adb shell su -c "chmod 777 /data"
给目录下所有文件和子目录加读写权限
adb shell su -c "chmod 777 /data/data/com.example.test/*"
Read More:Android真机调试时DDMS无法查看/data目录
七牛图片处理
限定长边,生成不超过500x500的缩略图,在网址后加:
?imageMogr2/thumbnail/500x500
命令行
简易Web服务:
cd 进入指定文件夹,执行
python -m http.server 8000
其他电脑用浏览器打开本机IP:8000
即可当FTP使用
强制删除文件夹
可用help 命令名
查询相关帮助
rd /s /q 路径\文件夹名
强制删除文件
del /f /a /q 路径\文件名
Hexo博客之NexT主题
独立居中的引用
带上下分割线的引用,引用内文本将自动居中。代码如下,三选一。效果见本文开头,「常用代码和知识点速查」这几个字。1
2
3
4
5
6
7
8<!-- HTML -->
<blockquote class="blockquote-center">blah blah blah</blockquote>
<!-- Built-in tag (Require NexT 0.4.5 or above) -->
{% centerquote %}blah blah blah{% endcenterquote %}
<!-- 别名 -->
{% cq %} blah blah blah {% endcq %}
突破容器限制宽度的图片
图片将自动扩展 26%,突破文章宽度。
代码三选一:1
2
3
4
5
6
7
8<!-- HTML -->
<img src="/image-url" class="full-image" />
<!-- Built-in tag (Require NexT 0.4.5 or above) -->
{% fullimage /image-url, alt, title %}
<!-- 别名 -->
{% fi /image-url, alt, title %}
VBA代码块
正则表达式
技术文章
正则表达式工具
正则表达式知识
字符 | 解释 |
---|---|
x | 字符x(x可代表任何合法的字符) |
\0mnn | 八进制数0mnn所表示的字符 |
\xhh | 十六进制值0xhh所表示的字符 |
\uhhhh | 十六进制值0xhhhh所表示的UNICODE字符 |
\t | 制表符(‘\u0009’) |
\n | 新行(换行)符(‘\u000A’) |
\r | 回车符(‘\u000D’) |
\f | 换页符(‘\u000C’) |
\a | 报警(bell)符(‘\u0007’) |
\e | Escape符(‘\u001B’) |
\cx | x对应的控制符。例如\cM匹配Ctrl-M。x值必须为A~Z或a~z之一 |
特殊字符 | 解释 |
---|---|
$ | 匹配一行的结尾 |
^ | 匹配一行的开头 |
() | 标记子表达式的开始和结束位置 |
[] | 用于确定中括号表达式的开始和结束位置 |
{} | 用于标记前面子表达式的出现频度 |
* | 指定前面子表达式可以出现零次或多次 |
+ | 指定前面子表达式可以出现一次或多次 |
? | 指定前面子表达式可以出现零次或一次 |
. | 匹配除换行符\n之外的任何单字符 |
\ | 用于转义下一个字符,或指定八进制、十六进制字符 |
| | 指定两项之间任选一项 |
预定义字符,即通配符 | 说明 |
---|---|
. | 可以匹配任何字符 |
\d | 匹配0-9的所有数字 |
\D | 匹配非数字 |
\s | 匹配所有的空白字符,包括空格、制表、回车、换页、换行 |
\S | 匹配所有的非空白字符 |
\w | 匹配所有的单词字符,包括0-9、26个英文字母和下划线 |
\W | 匹配所有的非单词字符 |
方括号表达式 | 说明 |
---|---|
表示枚举 | 如[abc]表示abc中任意一字符 |
表示范围:- | 如[a-f]表示a~f范围内任意字符 |
表示求否:^ | 如[^abc]表示非abc的任意字符 |
表示“与”运算:&& | 如[a-z&&[^bc]]表示a-z范围内除bc外的所有字符 |
表示“并”运算 | 如[a-d[m-p]]表示[a-dm-p] |
边界匹配符 | 说明 |
---|---|
^ | 行的开头 |
$ | 行的结尾 |
\b | 单词的边界 |
\B | 非单词的边界 |
\A | 输入的开头 |
\G | 前一个匹配的结尾 |
\Z | 输入的结尾,仅用于最后的结束符 |
\z | 输入的结尾 |
- Greedy(贪婪模式):数量表示符默认采用贪婪模式,表达式会一直匹配下去,直到无法匹配为止
- Reluctant(勉强模式):用问号后缀表示,只会匹配最少的字符,也称最小匹配模式
- Possessive(占有模式):用加号后缀表示,目前只有Java支持占有模式,固定从字符串第一个字母开始贪婪匹配。
贪婪模式 | 勉强模式 | 占有模式 | 说明 |
---|---|---|---|
X? | X?? | X?+ | X表达式出现零次或一次 |
X* | X*? | X*+ | X表达式出现零次或多次 |
X+ | X+? | X++ | X表达式出现一次或多次 |
X{n} | X{n}? | X{n}+ | X表达式出现n次 |
X{n,} | X{n,}? | X{n,}+ | X表达式最少出现n次 |
X{n,m} | X{n,m}? | X{n,m}+ | X表达式最少出现n次,最多出现m次 |
捕获组
字符 | 描述 | 示例 |
---|---|---|
(pattern) | 匹配pattern并捕获结果,自动设置组号。 | (abc)+d 匹配abcd或者abcabcd |
(?<name>pattern)或(?'name'pattern) |
匹配pattern并捕获结果,设置name为组名。 | |
\num | 对捕获组的反向引用。其中 num 是一个正整数。 | (\w)(\w)\2\1 匹配abba |
\k<name>或\k'name' |
对命名捕获组的反向引用。其中 name 是捕获组名。 | (?<group>\w)abc\k<group> 匹配xabcx |
非捕获组
字符 | 描述 | 示例 |
---|---|---|
(?:pattern) | 匹配pattern,但不捕获匹配结果。 | industr(?:y|ies) 匹配 “industry”或 “industries” |
(?=pattern) | 零宽度正向预查,不捕获匹配结果。 | Windows(?=95|98|NT|2000) 匹配 “Windows2000” 中的 “Windows” 不匹配 “Windows3.1” 中的 “Windows” |
(?!pattern) | 零宽度负向预查,不捕获匹配结果 | Windows(?!95|98|NT|2000) 匹配 “Windows3.1”中的 “Windows” 不匹配 “Windows2000”中的 “Windows” |
(?<=pattern) | 零宽度正向回查,不捕获匹配结果。 | 2000(?<=Office|Word|Excel) 匹配 “Office2000” 中的 “2000” 不匹配 “Windows2000”中的 “2000” |
(?<!pattern) | 零宽度负向回查,不捕获匹配结果。 | 2000(?<!Office|Word|Excel) 匹配 “Windows2000”中的 “2000” 不匹配 “Office2000”中的 “2000” |
注释
字符 | 描述 | 示例 |
---|---|---|
(?#comment) | comment是注释,不对正则表达式的处理产生任何影响 | 2[0-4]\d(?#200-249)|250-5|1?\d\d?(?#0-199) 匹配0-255的整数 |
正则式之python篇
1 | # 切分字符串 |
编译标志参数
编译标志让你可以修改正则表达式的一些运行方式。在 re 模块中标志可以使用两个名字,一个是全名如 IGNORECASE,一个是缩写,一字母形式如 I。(如果你熟悉 Perl 的模式修改,一字母形式使用同样的字母;例如 re.VERBOSE的缩写形式是 re.X。)多个标志可以通过按位 OR-ing 它们来指定。如 re.I | re.M 被设置成 I 和 M 标志:
- I –> IGNORECASE
使匹配对大小写不敏感;字符类和字符串匹配字母时忽略大小写。举个例子,[A-Z]也可以匹配小写字母,Spam 可以匹配 “Spam”, “spam”, 或 “spAM”。这个小写字母并不考虑当前位置。 - L –> LOCALE
影响 “w, “W, “b, 和 “B,这取决于当前的本地化设置。
locales 是 C 语言库中的一项功能,是用来为需要考虑不同语言的编程提供帮助的。举个例子,如果你正在处理法文文本,你想用 “w+ 来匹配文字,但 “w 只匹配字符类 [A-Za-z];它并不能匹配 “é” 或 “?”。如果你的系统配置适当且本地化设置为法语,那么内部的 C 函数将告诉程序 “é” 也应该被认为是一个字母。当在编译正则表达式时使用 LOCALE 标志会得到用这些 C 函数来处理 “w 後的编译对象;这会更慢,但也会象你希望的那样可以用 “w+ 来匹配法文文本。 - M –> MULTILINE
使用 “^” 只匹配字符串的开始,而 $ 则只匹配字符串的结尾和直接在换行前(如果有的话)的字符串结尾。当本标志指定後, “^” 匹配字符串的开始和字符串中每行的开始。同样的, $ 元字符匹配字符串结尾和字符串中每行的结尾(直接在每个换行之前)。 - S –> DOTALL
使 “.” 特殊字符完全匹配任何字符,包括换行;没有这个标志, “.” 匹配除了换行外的任何字符。 - X –> VERBOSE
该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。当该标志被指定时,在 RE 字符串中的空白符被忽略,除非该空白符在字符类中或在反斜杠之後;这可以让你更清晰地组织和缩进 RE。它也可以允许你将注释写入 RE,这些注释会被引擎忽略;注释用 “#”号 来标识,不过该符号不能在字符串或反斜杠之後。
正则式之Java篇
Pattern是一个正则表达式编译后在内存中的表现形式,是不可变类,可供多个并发线程安全使用。
1 | import java.util.regex.Pattern |
String类与正则式相关的方法
boolean matches(String regex):是否匹配
String replaceAll(String regex, String replacement):全部替换
String replaceFirst(String regex, String replacement):替换第一个匹配结果
String[] split(String regex):用regex分割字符串