java正则表达式匹配加号_正则表达式【范围性匹配】

1、

import re

key = r"

hello world

"#这段是你要匹配的文本

p1 = r"(?<=

).+?(?=

)"#这是我们写的正则表达式规则,你现在可以不理解啥意思

pattern1 = re.compile(p1)#我们在编译这段正则表达式

matcher1 = re.search(pattern1,key)#在源文本中搜索符合正则表达式的部分

print(matcher1.group(0))#打印出来

#hello world

2、

import re

key = r"javapythonhtmlvhdl"#这是源文本

p1 = r"python"#这是我们写的正则表达式

pattern1 = re.compile(p1)#同样是编译

matcher1 = re.search(pattern1,key)#同样是查询

print(matcher1.group(0))

#python

3、

import re

key = r"

hello world

"#源文本

p1 = r"

.+

"#我们写的正则表达式,下面会将为什么【.字符在正则表达式代表着可以代表任何一个字符(包括它本身)】

pattern1 = re.compile(p1)

print(pattern1.findall(key))#发没发现,我怎么写成findall了?咋变了呢?

#[‘

hello world

‘]

4、#正则表达式中有一个字符\,这个符号通常用来把特殊的符号转成普通的,把普通的转成特殊的,

#我们在.的前面加上了转义符\,但是并不是代表匹配“\.”的意思,而是只匹配“.”的意思

import re

key = r"afiouwehrfuichuxiuhong@hit.edu.cnaskdjhfiosueh"

p1 = r"chuxiuhong@hit\.edu\.cn"

pattern1 = re.compile(p1)

print (pattern1.findall(key))

#[‘chuxiuhong@hit.edu.cn‘]

5、#有没有发现我们第一次用.时,后面还跟了一个+?那这个加号是干什么的呢

#“.字符在正则表达式代表着可以代表任何一个字符(包括它本身)”,但是"hello world"可不是一个字符。

# +的作用是将前面一个字符或一个子表达式重复一遍或者多遍

#比方说表达式“ab+”那么它能匹配到“abbbbb”,但是不能匹配到"a",它要求你必须得有个b,多了不限,少了不行

#问我有没有那种“有没有都行,有多少都行的表达方式”,回答是有的。【*】跟在其他符号后面表达可以匹配到它0次或多次

比方说我们在王叶内遇到了链接,可能既有http://开头的,又有https://开头的,我们怎么处理?

import re

key = r"http://www.nsfbuhwe.com and https://www.auhfisna.com"#胡编乱造的网址,别在意

p1 = r"https*://"#看那个星号!

pattern1 = re.compile(p1)

print (pattern1.findall(key))

#[‘http://‘, ‘https://‘]

6、[]代表匹配里面的字符中的任意一个

import re

key = r"lalalahelloheiheihei"

p1 = r".+?[Hh][Tt][Mm][Ll]>"

pattern1 = re.compile(p1)

print pattern1.findall(key)

#[‘hello‘]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值