1.c语言中的转义字符
转义字符 |
意义 |
ASCII码值(十进制) |
\a |
响铃(BEL) |
007 |
\b |
退格(BS) ,将当前位置移到前一列 |
008 |
\f |
换页(FF),将当前位置移到下页开头 |
012 |
\n |
换行(LF) ,将当前位置移到下一行开头 |
010 |
\r |
回车(CR) ,将当前位置移到本行开头 |
013 |
\t |
水平制表(HT) (跳到下一个TAB位置) |
009 |
\v |
垂直制表(VT) |
011 |
\\ |
代表一个反斜线字符‘‘\‘ |
092 |
\‘ |
代表一个单引号(撇号)字符 |
039 |
\" |
代表一个双引号字符 |
034 |
\0 |
空字符(NULL) |
000 |
\ddd |
1到3位八进制数所代表的任意字符 |
三位八进制 |
\xhh |
1到2位十六进制所代表的任意字符 |
二位十六进制 |
2.python中的规则
(1)r表示不对字符串进行转义,保持字符串原样。python中遇到‘\‘就转义。
>>>print "\bhi"
hi
>>>print r"\bhi"
\bhi
(2)re是python里的正则表达式模块。findall是其中一个方法,用来按照提供的正则表达式,去匹配文本中的所有符合条件的字符串。返回结果是一个包含所有匹配的list。
3.正则表达式规则
“\b”在正则表达式中表示单词的开头或结尾,空格、标点、换行都算是单词的分割。而“\b”自身又不会匹配任何字符,它代表的只是一个位置。所以单词前后的空格标点之类不会出现在结果里。
在正则表达式中,[]表示满足括号中任一字符。比如“[hi]”,它就不是匹配“hi”了,而是匹配“h”或者“i”。
“.” "*" “?”
import re text="Hi,I am sdsfsf HisHildskd. I am his wife." m=re.findall(r"Hi",text) #找出所有Hi。得到[‘Hi‘, ‘Hi‘, ‘Hi‘] if m: print m else: print ‘not match‘ n=re.findall(r"\bHi\b",text) #只找到单词Hi。得到[‘Hi‘] if n: print n else: print ‘not match‘
import re text="site sea sue sweet see case sse ssee loses looses le" n=re.findall(r".*",text) if n: print r".*", # *表示前面的字符可以任意重复多次。得到的是[‘site sea sue sweet see case sse ssee loses‘, ‘‘] print n else: print ‘not match‘ l=re.findall(r".*?",text) # ?表示让他匹配到最短就停止 if l: print r".*?", # 得到的是[‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘] print l else: print ‘not match‘ q=re.findall(r"l.*e",text) # 以l开头,e结尾的最长字符串,得到[‘loses loose le‘] if q: print r"l.*e", print q else: print ‘not match‘ p=re.findall(r"l.*?e",text) # ?表示让他匹配到最短就停止,得到[‘lose‘, ‘loose‘,‘le‘] if p: print r"l.*?e", print p else: print ‘not match‘ k=re.findall(r"\bs.*?e\b",text) # .匹配除了‘\n\r‘之外的所有字符,得到的是[‘site‘, ‘sea sue‘, ‘sweet see‘, ‘sse‘, ‘ssee‘] if k: print r"\bs*?e\b", print k else: print ‘not match‘ #找到所有以s开头以e结尾的单词 k=re.findall(r"\bs\S*?e\b",text) # \S匹配的是所有可见的字符,得到的是[‘site‘, ‘sue‘, ‘see‘, ‘sse‘, ‘ssee‘] if k: print r"\bs\S*?e\b", print k else: print ‘not match‘ text="dfds srg sdf" # \s匹配的是所有不可见的字符,包括[\n\r\f\t\v],得到的是[‘ ‘, ‘\t‘] rr=re.findall(r"\s",text) if rr: print rr else: print "NULL"
时间: 2024-10-09 09:10:50