Kingdict – ECommerce Observer

To Make Speaking Easier across world

应聘先读

目前需要如下职位(工作形式:暑期工 或者  长期兼职):

产品上传专员          暂时无空缺

1, 熟悉电脑以及上网基本操作。

2,   懂简单英语

3, 能忍受简单机械工作

网站编辑

1,    熟悉电脑以及上网基本操作。

2,    书面表达能力好,爱好文字写作类工作。

3,    擅长以下任意一门语言,

英语

法语

日语

韩语

西班牙语

意大利语

葡萄牙语

网站推广专员

1,    计算机或计算机相关专业

2,    有比较好的互联网相关知识

3,    对SEO(搜索引擎优化)有基本了解或有志于此方面发展

4,    会简单的脚本编程技术

以上职位均需本人有电脑 和 上网 条件, 待遇面议。

2011 Chinese New Year – 2

2011 Chinese New Year – 1

test

web design  web develop

SEO Resource

关键词研究工具:适当深入地进行关键字研究,为你的网站进行栏目划分及规范关键词部署做准备。

1. Keyword Research Tool – Webmaster toolkit
2. Keyword External Tool – Google Adwords
3. Keyword Selector Tool – Inventory Overture
4. Keyword Suggestions Overture – SEO Chat
5. Website Keyword Suggestions – Webconfs
6. Keyword Suggestion Tool – Self SEO

关键词密度:一个关键字、词在页面出现的个数及所占文本的比率。

7. Keyword Density – SEO Chat
8. Keyword Density & Proeminence – Ranks
9. Keyword Density Analyzer – Keyword density
10. Analyze Keywords Density – Google rankings
11. Keyword Density Checker – Webconfs
12. Keyword Density Analyzer Tools – SEO Book

竞争对手分析:可以分析目标关键词的竞争对手是谁,并分析竞争对手用过的关键词。

13. Competition Tool – SEO Digger
14. Competition Analysis Tool – Seoscorecard
15. Top Competitor Tool – Webuildpages

搜索引擎关键字位置的工具:利用这些工具来检查你的关键词目前在主要搜索引擎如Google, Yahoo, MSN所处的位置。

16. Search Engine Keyword Position – SEO Chat
17. Keyword Analysis Tool – Mcdar
18. SERPS Position Checker – LinkVendor
19. Website Position Tool – Rnk1

第二部分:链接工具

链接广度:跟踪反向链接的总数,并返回哪些网站链回了你及锚文本是哪些。

20. Link Popularity – SEO Chat
21. Link Popularity Checker – Webmaster Toolkit
22. Link Popularity Check – Widexl Internet Solution
23. Link Popularity Check – Market Leap
24. Link Popularity – Backlinks Checker – Search Bliss
25. Backlink Analyzer – Sitening
26. Check Backlinks – Webuildpages

C级IP地址检查::对链接伙伴进行IP地址分布检查,而不至于被同一类IP地址的链接所惩罚。

27. Class C Checker – Webrank Info
28. Class C Checker – Webmaster Toolkit
29. Class C Checker – SEO Chat

蜘蛛模拟器:可以获知网页外观与搜索引擎蜘蛛索引的区别。

30. Spider Simulator – SEO Chat
31. Spider View – Iwebtool
32. Search Engine Spider Simulator – Anownsite
33. SE Bot Simulator – XML Sitemaps
34. SE Spider – LinkVendor

第三部分:可用性工具

浏览器分辨率测试:在不同屏幕分辨率、不同操作系统、不同浏览器下网页的显示效果。

35. Browser Screen Resolution Checker – Markhorrell
36. Screen Size Tester – AnyBrowser
37. Screen Resolution Checker – AndyLangTon

HTML及CSS验证毫无疑问,W3C的验证会让你取得更好的搜索引擎排名加分,赶快改正那些错误及不规范的代码吧。

38. W3C Validator
39. WDG HTML Validator – Web Design Group
40. CSE HTML Validator Lite
41. Validation Services for your HTML / XHTML / WML – Validome
42. CSS Validator – Jigsaw

FireFox扩展:更多可参考我之前写过的火狐SEO扩展

43. W3C Validator
44. WDG HTML Validator – Web Design Group
45. CSE HTML Validator Lite

页面速度测试:页面小、下载速度快的网页谁深受用户喜欢。

46. Speed Tester – LinkVendor
47. Website Speed Test – Web Hosting Top
48. Website Speed Test – Iwebtool
49. Speed test – WebSite Goodies
50. Web Page Speed Report

第四部分:其他SEO工具

PageRank预测:包括未来预测及当前PR值。

51. Future PageRank – SEO Chat
52. Predict PageRank – Page Rank Prediction
53. Future PageRank
54. * Page Rank Prediction – DNLodge
55. Visual PageRank – Iwebtool
56. Search PageRank – SEO Chat
57. Page Rank Tool

流量排名:网站的流量走势及搜索引擎分析。

58. Alexa Traffic
59. Awstats
60. ** Sitetracker
61. ** Histats
62. ** Google Analytics
63. Compete

搜索引擎饱和度:搜索引擎索引网站网页的数量。

64. Search Engine Saturation – Market Leap
65. Search Engine Saturation Tool – Build Reciprocal Links
66. Search Engine Saturation – SearchBliss
67. Search Engine Saturation Tool – To the Web
68. Search Engine Saturation Tool – SEO Book

Python WEB 客户端编程

HTTP基于请求和回应(requests &responses )-客户端制造请求服务器返回回应。urlib2用代表了你正在请求的HTTP request的Request对象反映了这些。调用urlopen函数对请求的url返回一个respons对象。这个respons是一个像file的对象,这意味着你能用.read()函数操作这个respon对象:
req = urllib2.Request(‘http://www.voidspace.org.uk’)
response = urllib2.urlopen(req)
the_page = response.read()

url = ‘http://www.someserver.com/cgi-bin/register.cgi’
user_agent = ‘Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)’
values = {‘name’ : ‘Michael Foord’,
‘location’ : ‘Northampton’,
‘language’ : ‘Python’ }
headers = { ‘User-Agent’ : user_agent }

data = urllib.urlencode(values)
req = urllib2.Request(url, data, headers)
response = urllib2.urlopen(req)
the_page = response.read()

当一个错误( HTTPError)被抛出的时候,服务器返回一个HTTP错误代码和一个错误页。你可以使用返回的HTTP错误示例。这意味着它不但具有code属性,而且同时具有read,geturl,和info,methods属性。>>> req = urllib2.Request(‘http://www.python.org/fish.html’)>>> try:>>> urllib2.urlopen(req)>>> except URLError, e:>>> print e.code>>> print e.read()>>>404…… etc

from urllib2 import Request, urlopen, URLError
req = Request(someurl)
try:
response = urlopen(req)
except URLError, e: 同时也会涵括HTTPError
if hasattr(e, ‘reason’):
print ‘We failed to reach a server.’
print ‘Reason: ‘, e.reason
elif hasattr(e, ‘code’):
print ‘The server couldn\’t fulfill the request.’
print ‘Error code: ‘, e.code
else:
# everything is fine

urlopen返回的response(或者HTTP错误实例)有两个有用的方法:info和geturl。
geturl–它返回被获取网页的真正的url。
info–它返回一个像字典的对象来描述获取的网页,尤其是服务器发送的头。它现在一般是httplib.HTTPMessage的一个实例。

Openers 和Handlers
当你获取一个URL时,你使用一个opener(一个可能以一个比较迷糊名字命名的实例–urllib2.OpenerDirector)。正常情况下
我们一直使用默认的opener,通过urlopen,但你也可以创建自定义的openers。opener使用操作器(handlers)。所有的重活都交给这些handlers来做。每一个handler知道
怎么打开url以一种独特的url协议(http,ftp等等),或者怎么处理打开url的某些方面,如,HTTP重定向,或者HTTP cookie。

你将会创建openers如果你想要用安装特别的handlers获取url,例如,获取一个处理cookie的opener,或者一个不处理重定向的opener。

枚举一个OpenerDirector,然后多次调用.add_handler(some_handler_instance)来创建一个opener。
或者,你可以用build_opener,这是一个很方便的创建opener对象的函数,它只有一个函数调用。build_opener默认会加入许多
handlers,但是提供了一个快速的方法添加更多东西和/或使默认的handler失效。
其他你想要的handlers能够处理代理,authentication和其他平常但是又有些特殊的情况。
install_opener能被用于创建一个opener对象,(全局)默认的opener。这意味着调用urlopen将会用到你刚安装的opener。
opener对象有一个open方法,它可以被直接调用来获取url以一种和urlopen函数同样的方式:没有必要调用install_opener,除非是为了方便。

默认opener有对普通情况的操作器 (handlers)- ProxyHandler, UnknownHandler, HTTPHandler, HTTPDefaultErrorHandler, HTTPRedirectHandler, FTPHandler, FileHandler, HTTPErrorProcessor.

import ClientCookie
cookies = ClientCookie.CookieJar()
opener = ClientCookie.build_opener(ClientCookie.HTTPCookieProcessor(cookies))
opener.addheaders = [("User-agent", "Mozilla/5.0 (compatible; MyProgram/0.1)"),
("From", "responsible.person@example.com")]
ClientCookie.install_opener(opener)
r = ClientCookie.urlopen(“http://acme.com/”)

import ClientCookie
cj = ClientCookie.LWPCookieJar()
opener = ClientCookie.build_opener(ClientCookie.HTTPCookieProcessor(cj))
ClientCookie.install_opener(opener)
r = ClientCookie.urlopen(“http://foobar.com/”)
cj.save(“/some/file”, ignore_discard=True, ignore_expires=True)

import os, ClientCookie
cookies = ClientCookie.MozillaCookieJar()
cookies.load(os.path.join(os.environ["HOME"], “/.netscape/cookies.txt”))
# see also the save and revert methods

import ClientCookie
cj = ClientCookie.MSIECookieJar(delayload=True)
cj.load_from_registry() # finds cookie index file from registry

Python处理中文知识

Python will default to ASCII as standard encoding if no other encoding hints are given.
# coding=
# -*- coding: -*-
中文 coding:cp936
文件中指定的编码要和实际相符合,否则的话python会报错

Python’s tokenizer/compiler combo will need to be updated to
work as follows:

1. read the file

2. decode it into Unicode assuming a fixed per-file encoding

3. convert it into a UTF-8 byte string

4. tokenize the UTF-8 content

5. compile it, creating Unicode objects from the given Unicode data
and creating string objects from the Unicode literal data
by first reencoding the UTF-8 data into 8-bit string data
using the given file encoding

字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。
decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode(‘gb2312′),表示将gb2312编码的字符串str1转换成unicode编码。

encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode(‘gb2312′),表示将unicode编码的字符串str2转换成gb2312编码。

因此,转码的时候一定要先搞明白,字符串str是什么编码,然后decode成unicode,然后再encode成其他编码

代码中字符串的默认编码与代码文件本身的编码一致。

如:s=’中文’

如果是在utf8的文件中,该字符串就是utf8编码,如果是在gb2312的文件中,则其编码为gb2312。

如果字符串是这样定义:s=u’中文’

则该字符串的编码就被指定为unicode了,即python的内部编码,而与代码文件本身的编码无关。

如果一个字符串已经是unicode了,再进行解码则将出错,因此通常要对其编码方式是否为unicode进行判断:

isinstance(s, unicode) #用来判断是否为unicode

用非unicode编码形式的str来encode会报错
unicode(str,’gb2312′)与str.decode(‘gb2312′)是一样的,都是将gb2312编码的str转为unicode编码
如何获得系统的默认编码?
import sys
print sys.getdefaultencoding()

#!/usr/bin/env python
#coding=utf-8
s=”中文”

if isinstance(s, unicode):
#s=u”中文”
print s.encode(‘gb2312′)
else:
#s=”中文”
print s.decode(‘utf-8′).encode(‘gb2312′)

在window下面用记事本编辑文件的时候,如果保存为UNICODE或UTF-8,分别会在文件的开头加上两个字节“\xFF\xFE”和三个字节“\xEF\xBB\xBF”。
Python中有两种默认的字符串:str和unicode。
控制台,中文字符的编码是GBK
在Python中,“str”对象就是一个字节数组,至于里面的内容是不是一个合法的字符串,以及这个字符串采用什么编码(gbk, utf-8, unicode)都不重要。这些内容需要用户自己记录和判断。这些的限制也同样适用于“unicode”对象。要记住“unicode”对象中的内容可绝对不一定就是合法的unicode字符串,我们很快就会看到这种情况。
在windows的控制台上,支持gbk编码的str对象和unicode编码的unicode对象。
windows下的IDLE SHELL中,对于不使用“u”作标识的字符串,IDLE把其中的中文字符进行GBK编码。但是对于使用“u”的unicode字符串,IDLE居然一样是用了GBK编码,不同的是,这时候每一个字符都是unicode(对象)字符!!此时len(“中文”) = 4。

参考:http://www.sqlite.com.cn/MySqlite/11/395.Html

http://blog.csdn.net/lxdcyh/archive/2009/03/23/4018054.aspx

加速工作的Python知识点

import types
if type(a)==types.IntType:
print “Int type”

if isinstance(data, int):
…             print ‘int’
…     elif isinstance(data, str):
…             print ‘str’

python build-in functions
getattr(object, name[, default])
hasattr(object, name)
===========================

捕获所有异常

try
a=b
b=c
except Exception,ex:
print Exception,’:',ex
except:
all unknown exception
else:
nothing happened

try:

finally:

数组操作

x代表数组中的元素,i代表位置

a) append(x) 把元素x添加到数组的尾部

b) insert(i,x) 把元素x 插入到位置i

c) remove(x) 删除第一个元素x

d) pop(i) 删除第i个元素,并返回这个元素。若调用pop()则删除最后一个元素

e) index(x) 返回数组中第一个值为x的位置。如果没有匹配的元素会抛出一个错误

f) count(x) 返回x在数组中出现的次数

g) sort() 对数组中的元素进行排序

h) reverse() 对数组中的元素用倒序排序

’1,,2′.split(‘,’) returns ['1', '', '2'])
’1<>2<>3′.split(‘<>’) returns ['1', '2', '3']

s = ‘hEllo pYthon’
print s.upper()
print s.lower()
print s.capitalize()
print s.title()

追加制定长度的字符串
str2 += str1[0:n]
str.replace(‘old’,'new’)

list1=['a','p','p','p','l','e']
str = ”
print str.join(list1)
print str.join(list1[2:4])

‘ abc’.lstrip()
‘abc ‘.rstrip()
‘ abc ‘.strip()

查找字符串
string.find(sub)
string.index(sub)
string.rfind(sub)
string,rindex(sub)

cmp(str1,str2)
cmp(str1.upper(),str2.upper())

黄埔图书馆

天气慢慢暖和起来了,现在的阳光刚刚好,不热不冷,有时想想即便什么都不做,单单晒太阳也是一种幸福。可平时大家都忙于工作生活,不见得能享受这春天的阳光。

去了黄埔图书馆,办了一个借书证,可是有点失望,里面没多少计算机方面的书籍,看来还得改天去上海市图书馆看看。

普通外借须知:
1、进入普通外借室,须凭本人持有的具有普通外借功能的有效读者证。

2、每证最多可借图书或期刊共5册,借期28天,可续借一次。逾期归还者须支付逾期费每天0.2元/册。持有逾期图书或逾期费未缴清的读者均不能继续借书,读者需要把已经逾期的书刊归还,并交清逾期费,才能继续借书。

3、借阅时请仔细检查所借书刊,如有破损、缺页等可向工作人员说明,并作技术处理。如书内盖有“书附盘”字样时,请注意查收。请爱护所借书刊及内附光盘(遗失、损坏,每盘5元),不撕页、污损、勾划、书写、调换等。未办理外借手续,不得将书刊带出室外,违者按“书刊资料赔偿规定”处理。

4、请妥善保管读者证,如不慎遗失,应及时去办证处挂失。否则由此造成的损失,由读者承担。

5、如欲退证:读者须凭身份证、读者证和押金凭证办理退证手续,领取押金,办证处收回读者证。代退押金者, 除出示以上证件,同时还需出示本人身份证。

6、残疾或70岁以上等有特殊情况的读者,如需代借,须书写委托证明。代借时,受托人须出示身份证以及委托人的读者证和委托证明。

常用正则表达式-Python

http://www.96yx.com/tool/ASC2.htm ascii 码表查询

. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束

代码/语法 说明
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次

[aeiou]就匹配任何一个英文元音字母,[.?!]匹配标点符号(.或?或!)。
[0-9]代表的含意与\d就是完全一致的:一位数字;同理[a-z0-9A-Z_]也完全等同于\w

\ba\w*\b匹配以字母a开头的单词——先是某个单词开始处(\b),然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词结束处(\b)。

\d+匹配1个或更多连续的数字。这里的+是和*类似的元字符,不同的是*匹配重复任意次(可能是0次),而+则匹配重复1次或更多次。

\b\w{6}\b 匹配刚好6个字符的单词。

反义
有时需要查找不属于某个能简单定义的字符类的字符。比如想查找除了数字以外,其它任意字符都行的情况,这时需要用到反义:

表3.常用的反义代码 代码/语法 说明
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符

例子:\S+匹配不包含空白符的字符串。

]+>匹配用尖括号括起来的以a开头的字符串。

常用的处理选项 名称 说明
IgnoreCase(忽略大小写) 匹配时不区分大小写。
Multiline(多行模式) 更改^和$的含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配。(在此模式下,$的精确含意是:匹配\n之前的位置以及字符串结束前的位置.)
Singleline(单行模式) 更改.的含义,使它与每一个字符匹配(包括换行符\n)。
IgnorePatternWhitespace(忽略空白) 忽略表达式中的非转义空白并启用由#标记的注释。
ExplicitCapture(显式捕获) 仅捕获已被显式命名的组。

尚未详细讨论的语法 代码/语法 说明
\a 报警字符(打印它的效果是电脑嘀一声)
\b 通常是单词分界位置,但如果在字符类里使用代表退格
\t 制表符,Tab
\r 回车
\v 竖向制表符
\f 换页符
\n 换行符
\e Escape
\0nn ASCII代码中八进制代码为nn的字符
\xnn ASCII代码中十六进制代码为nn的字符
\unnnn Unicode代码中十六进制代码为nnnn的字符
\cN ASCII控制字符。比如\cC代表Ctrl+C
\A 字符串开头(类似^,但不受处理多行选项的影响)
\Z 字符串结尾或行尾(不受处理多行选项的影响)
\z 字符串结尾(类似$,但不受处理多行选项的影响)
\G 当前搜索的开头
\p{name} Unicode中命名为name的字符类,例如\p{IsGreek}
(?>exp) 贪婪子表达式
(?-exp) 平衡组
(?im-nsx:exp) 在子表达式exp中改变处理选项
(?im-nsx) 为表达式后面的部分改变处理选项
(?(exp)yes|no) 把exp当作零宽正向先行断言,如果在这个位置能匹配,使用yes作为此组的表达式;否则使用no
(?(exp)yes) 同上,只是使用空表达式作为no
(?(name)yes|no) 如果命名为name的组捕获到了内容,使用yes作为表达式;否则使用no
(?(name)yes) 同上,只是使用空表达式作为no

一、数字相关

1.1     非负整数

import re

nStr = “123″

p = re.compile(‘^\d+$’,re.S)        非负整数(正整数与零)

if p.match(nStr):

print “exists”

else:

print “not”

1.2     正整数

import re

nStr = “123″

p = re.compile(‘^[0-9]*[1-9][0-9]*$’,re.S)      正整数(不包括零在内)

if p.match(nStr):

print “exists”

else:

print “not”

1.3     非正整数(负整数+0)

import re

nStr = “-123″

p = re.compile(‘^((-\d+)|(0+))$’,re.S)

if p.match(nStr):

print “exists”

else:

print “not”

1.4     负整数

import re

nStr = “-123″

p = re.compile(‘^-[0-9]*[1-9][0-9]*$’,re.S)

if p.match(nStr):

print “exists”

else:

print “not”

1.5  整数

import re

nStr = “123″

p = re.compile(‘^-?\d+$’,re.S)

if p.match(nStr):

print “exists”

else:

print “not”

1.6  非负浮点数(正浮点数 + 0)

import re

nStr = “0.123″

p = re.compile(‘^\d+(\.\d+)?$’,re.S)

if p.match(nStr):

print “exists”

else:

print “not”

1.7  正浮点数

import re

nStr = “0.123″

p = re.compile(‘^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$’,re.S)

if p.match(nStr):

print “exists”

else:

print “not”

1.8  非正浮点数(负浮点数 + 0)

import re

nStr = “-0.123″

p = re.compile(‘^((-\d+(\.\d+)?)|(0+(\.0+)?))$’,re.S)

if p.match(nStr):

print “exists”

else:

print “not”

1.9  浮点数

import re

nStr = “-0.123″

p = re.compile(‘^(-?\d+)(\.\d+)?$’,re.S)

if p.match(nStr):

print “exists”

else:

print “not”

二、字符相关

2.1 26个英文字母组成的字符串

import re

nStr = “abck”

p = re.compile(‘^[A-Za-z]+$’,re.S)

if p.match(nStr):

print “exists”

else:

print “not”

如果是大写的话就是:^[A-Z]+$

如果是小写的话就是:^[a-z]+$

如果是数字与字母组合:^[A-Za-z0-9]+$

如果由数字、26个字母、或下划线组成的:^\w+$

三、HTML相关

3.1 匹配<script>标签的

#coding:utf-8

import re

nStr = “<script src=’…js’></script>”

p = re.compile(‘<\s*script[^>]*>[^<]*<\s*/\s*script\s*>’,re.I)

if p.match(nStr):

print “exists”

else:

print “not”

3.2 匹配<style>标签

#coding:utf-8

import re

nStr = “<style></style>”

p = re.compile(‘<\s*style[^>]*>[^<]*<\s*/\s*style\s*>’,re.I)

if p.match(nStr):

print “exists”

else:

print “not”

3.3 匹配HTML标签

#coding:utf-8

import re

nStr = “<div>”

p = re.compile(‘</?\w+[^>]*>’,re.I)

if p.match(nStr):

print “exists”               输出

else:

print “not”

四、URL相关

4.1 匹配EMAIL地址

import re

nStr = “hkebao@126.com”

p = re.compile(‘^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$’,re.S)

if p.match(nStr):

print “exists”

else:

print “not”

4.2 匹配URL

import re

nStr = “http://localhost”

p = re.compile(‘^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$’,re.S)

if p.match(nStr):

print “exists”

else:

print “not”

re.match

re.match 尝试从字符串的开始匹配一个模式,如:下面的例子匹配第一个单词。

1. import re
2.
3. text = “JGood is a handsome boy, he is cool, clever, and so on…”
4. m = re.match(r”(\w+)\s”, text)
5. if m:
6.     print m.group(0), ‘\n’, m.group(1)
7. else:
8.     print ‘not match’
re.search

  re.search函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回,如果字符串没有匹配,则返回None。

1. import re
2.
3. text = “JGood is a handsome boy, he is cool, clever, and so on…”
4. m = re.search(r’\shan(ds)ome\s’, text)
5. if m:
6. print m.group(0), m.group(1)
7. else:
8. print ‘not search’

re.match与re.search的区别:re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

re.sub

  re.sub用于替换字符串中的匹配项。下面一个例子将字符串中的空格 ‘ ‘ 替换成 ‘-’ :

1. import re
2.
3. text = “abcde”
4. print re.sub(r’\s+’, ‘-’, text)

re.sub(r’\s’, lambda m: ‘[' + m.group(0) + ']‘, text, 0);将字符串中的空格’ ‘替换为’[ ]‘。

re.split

  可以使用re.split来分割字符串,如:re.split(r’\s+’, text);将字符串按空格分割成一个单词列表。
re.findall

  re.findall可以获取字符串中所有匹配的字符串。如:re.findall(r’\w*oo\w*’, text);获取字符串中,包含’oo’的所有单词。

Python 匹配任意字符(包括换行符)的正则表达式写法
(.*)
结果运行之后才发现,无法获得换行之后的文本。于是查了一下手册,才发现正则表达式中,“.”(点符号)匹配的是除了换行符“\n”以外的所有字符。
以下为正确的正则表达式匹配规则:
([\s\S]*)
同时,也可以用 “([\d\D]*)”、“([\w\W]*)” 来表示。
在文本文件里, 这个表达式可以匹配所有的英文
/[ -~]/

« Previous Entries  下一页 »