本文目录
- python正则表达式辨别输入日期规范
- python的正则表达式
- 请问python编程中怎么用正则表达式来编写一个程序,从而判断输入的数是否为浮点数求高手指教
- 求python 正则表达式, regex 判断是否存在abc.abc.abc
- 用Python判断一个字符串是否是正则表达式
- Python如何判断正则表达式是否匹配成功
- python 正则表达式是什么
python正则表达式辨别输入日期规范
1、python正则表达式辨别输入日期规范如下:
year,month,day=eval(input("请输入年月日,之间用逗号分开"))
months=
if (year%4==0 and year %100 !=0) or (year%400==0):
months=29 #闰年的话2月最多29天
if month《1 or month》12:
print("月份不合法")
elif day《1 or day》months:
print("日不合法")
else:
print("年月日合法")
2、代码:
3、结果:
python的正则表达式
1,正则表达式的一些内容
***隐藏网址***
看下面的程序看看正则表达提取文本中的邮箱:
\w 匹配字母,数字,下划线
+ 匹配1次或者多次 re是正则表达式的工具包,工具包出错的话在anaconda的命令行输入"pip install re"安装,其他的工具包也是如此.
re.compile()中的r示意\不是转义字符,也就是保持后面字符串原样,findall返回一个列表.下面还有一个版本的程序略有不同.
compile的另一个参数re.IGONORECASE(忽略大小写),还可以是re.DORALL,多行模式,具体功能也是模糊不清,不过在使用通配符 . 匹配的时候加上re.DOTALL参数能够匹配换行.如果希望忽略大小写和多行模式都开启可以使用re.compile(r’....’,re.IGNORECASE|re.DOTALL) .
表达式使用( ),对匹配到的内容分为3组 也就是(\w+)出现字母,数字,下划线一次或多次,这个分组就是下面使用match对象的grou()方法的时候的参数.不给参数和参数0都是得到整个匹配到的内容, 参数1得到第一个括号匹配到的内容,以此类推参数2和3,如果没有括号分组的话使用参数会出现错误. search( )查找和正则式匹配的内容,只匹一次后面的那个找不到.返回一个match对象
\w 匹配字母,数字,下划线
\W 匹配字母,数字.下划线之外的所有字符
\d 匹配数字
\D 匹配非数字
\s 匹配空格,制表符,换行符
\S匹配除空格制表符,换行符之外的其他字符
匹配所有的元音字母,注意不是匹配单词.
{最少次数,最多次数},例如{3,9} 匹配3-9次,{ ,10}匹配0-10次. 默认为匹配最多次数(贪心匹配),非贪心模式在后面加上问号
? 可选 0次或者1次吧
+匹配1次或多次
*匹配0次或者多次
^ 判断开头 ^\d 如果待匹配串是数字开头则返回第一个数字
$判断结尾 \d$ 如果待匹配串是数字结尾则返回最后一个数字
. 通配符,匹配除换行之外的所有字符
\d{11} 匹配数字11次
. * 匹配所有字符除 换行
小写和大写字母、数字、句点、下划线、百分号、加号或短横
{2,4} 匹配字母 2 - 4次
请问python编程中怎么用正则表达式来编写一个程序,从而判断输入的数是否为浮点数求高手指教
1. 程序如下:
import re
number = str(input("Please input a number:"))
pattern = re.compile(r’^+$’)
match = pattern.match(number)
if match:
print "Number is a float."
else:
print "Number is not a float."
2. 关于这个正则表达式,解释一下:
^+$
^表示以这个字符开头,也就是以表示字符-或者+之一,
?表示0个或1个,也就是说符号是可选的。
同理表示0到9的一个数字,+表示1个或多个,也就是整数部分。
\.表示的是小数点,\是转义字符因为.是特殊符号(匹配任意单个除\r\n之外的字符),
所以需要转义。
小数部分同理,$表示字符串以此结尾。
3. 关于正则表达式,根据需要有好几种写法:
1. 强制符号、整数、小数和指数
^+$
2. 强制符号、整数、小数,没有指数
^+$
3. 可选符号,强制整数、小数,没有指数
^+$
4或更多,见下文:
***隐藏网址***
P.S.:例子中的是第三种写法。
4. 测试结果:
求python 正则表达式, regex 判断是否存在abc.abc.abc
import retext = ’’’《android.support.v7.internal.widget.ActionBarContextView android:ellipsize="android.support.v7.internal.widget.ActionBarContextView" android:id="@id/action_bar_subtitle" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/abc_action_bar_subtitle_top_margin_material" android:singleLine="true" /》’’’htm = re.findall(r"\w+\.\w+\.\w+\.\w+\.\w+\.\w+", text)print(htm)
如果不确定小数点个数
import retext = ’’’《android.support.v7.internal.widget.ActionBarContextView android:ellipsize="android.support.v7.internal.widget.ActionBarContextView" android:id="@id/action_bar_subtitle" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/abc_action_bar_subtitle_top_margin_material" android:singleLine="true" /》’’’htm = re.findall(r"((\w+\.)+\w+)", text)for t in htm: print(t)
用Python判断一个字符串是否是正则表达式
一个简捷的方法是,
try: re.compile(’xxx’);catch: # 如果有异常发生,说明不是合法的正则
这样是python语法来判断的。
Python如何判断正则表达式是否匹配成功
提问者写的程序,逻辑是正确的,需要更改如下:
import res= re.match("\d","abc")print s,type(s)if str(s)==’None’: print 1else: print 2
第四行,提问者是想控制s是否是空,但是通过第三行的type(s)可以看得出来,s的类型和==号后面的类型本身就是不匹配的,所以肯定不会运行第五行的内容;
修改如下,将第四行的s改为:str(s),转化为字符串,这样才可以比较。
python 正则表达式是什么
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
正则表达式是用来匹配字符串非常强大的工具,在其他编程语言中同样有正则表达式的概念,Python同样不例外,利用了正则表达式,我们想要从返回的页面内容提取出我们想要的内容就易如反掌了。
正则表达式的大致匹配过程是:
1、依次拿出表达式和文本中的字符比较。
2、如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。
3、如果表达式中有量词或边界,这个过程会稍微有一些不同。