【1.75】正则表达式---3 \b \B

# \b,\B是单词边界,不匹配任何实际字符,所以是看不到的;\B是\b的非(补)。
#
# \b:表示字母数字与非字母数字的边界,     非字母数字与字母数字的边界。
#
# \B:表示字母数字与(非非)字母数字的边界,非字母数字与非字母数字的边界。

# 但是这里和\s \w \d 不一样  这里需要转义 \
# 也就是必须写成 \\b
# findall  就是找出能匹配规则的所有字段
# split  就是将能匹配规则 的地方 将其分片

import  re

str = "=yao123==yao123@123.123yao=\t123,\n@123"

# \b:表示字母数字与非字母数字的边界,
y = re.findall("123\\b",str)
print (y)   #['123', '123', '123', '123', '123']

y = re.split("123\\b",str)
print (y)   #['=yao', '==yao', '@', '.123yao=\t', ',\n@', '']


str = "=yao123==yao123@123.123yao=\t123,\n@123"
#非字母数字与字母数字的边界
y = re.findall("\\b123\\b",str)
print (y)   #['123', '123', '123']

y = re.split("\\b123\\b",str)
print (y)   #['=yao123==yao123@', '.123yao=\t', ',\n@', '']



str = "=yao123==yao123@123.123yao=\t123,\n@123"
#表示字母数字与(非非)字母数字的边界  (就是字母数字与字母数字的边界)
y = re.findall("123\\B",str)
print (y)   #['123']

y = re.split("123\\B",str)
print (y)   #['=yao123==yao123@123.', 'yao=\t123,\n@123']



str = "=yao123==yao123@123.123yao=\t123,\n@123"
#非字母数字与非字母数字的边界
y = re.findall("123=\\B",str)
print (y)   #['123=']

y = re.split("123=\\B",str)
print (y)   #['=yao', '=yao123@123.123yao=\t123,\n@123']
findall 就是找出能匹配规则的所有字段 # split 就是将能匹配规则 的地方 将其分片

\b,\B是单词边界,不匹配任何实际字符,所以是看不到的;\B是\b的非(补)。

\b:表示字母数字与非字母数字的边界,     非字母数字与字母数字的边界。

\B:表示字母数字与(非非)字母数字的边界,非字母数字与非字母数字的边界。

# \b,\B是单词边界,不匹配任何实际字符,所以是看不到的;\B是\b的非(补)。
#
# \b:表示字母数字与非字母数字的边界,     非字母数字与字母数字的边界。
#
# \B:表示字母数字与(非非)字母数字的边界,非字母数字与非字母数字的边界。

# 但是这里和\s \w \d 不一样  这里需要转义 \
# 也就是必须写成 \\b

import  re

str = "=yao123==yao123@123.123yao=\t123,\n@123"

# \b:表示字母数字与非字母数字的边界,
y = re.findall("123\\b",str)
print (y)   #['123', '123', '123', '123', '123']

#非字母数字与字母数字的边界
y = re.findall("\\b123\\b",str)
print (y)   #['123', '123', '123']


#表示字母数字与(非非)字母数字的边界  (就是字母数字与字母数字的边界)
y = re.findall("123\\B",str)
print (y)   #['123']


#非字母数字与非字母数字的边界   
y = re.findall("123=\\B",str)     
print (y)   #['123=']
\b 就是字母数字和非字母数字的边界 \B 就是相同类型之间的边界(同字母数字 同为非字母数字)

 

posted @ 2016-04-23 10:36  科学小怪癖  阅读(112)  评论(0)    收藏  举报