正则表达式

第三篇:Django的路由系统

守給你的承諾、 提交于 2020-01-08 20:00:26
目录 表关系的创建 Django的表关系建立 Django 请求生命周期流程图 Django 的路由系统 URL conf配置 基本格式 正则表达式 无名分组 有名分组 反向解析 无名分组反向解析 有名分组反向解析 伪代码诠释 路由分发 名称空间(了解) 虚拟环境 Django 版本区别 伪静态 表关系的创建 表与表之间的关系:一对一,一对多,多对多 如何判断表与表之间的关系? 换位思考的角度去考虑 以图书管理系统为例: 图书表 图书和出版社是一对多的外键关系 一对多的外键关系,外键字段建立在使用频率多的一方 出版社表 作者表 图书与作者是多对多的外键关系 多对多的外键关系,外键字段无论建在哪张表里面都可以 但是推荐建立在查询频率比较高的那张表中 作者详情表 作者与作者详情表是一对一的外键关系 一对一的外键关系 外键字段建在哪张表里面都可以 但是推荐建立在使用频率较高的那张表中 外键建立使用频率较高的一方,方便我们后面基于orm查询 Django的表关系建立 会将字段名和另外一张表的主键字段自动关联起来,建立起外键关系 一对多: 字段名 = models.Foreignkey(to='表名') 多对多: 字段名 = models.ManyToManyField(to='表名') 一对一: 字段名 = models.OneToOneField(to='表名') ForeignKey

正则表达式匹配

谁说我不能喝 提交于 2020-01-08 18:28:49
题目描述   请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配   思路:没什么特别的思路,对正则表达式充分理解,情况考虑全面就OK。考虑几个特殊情况:"",".*"和"","."还有"ab",".*" class Solution { public: bool isMatch(char *str, char *pattern) { if(*str=='\0' && *pattern=='\0')return true;//匹配结束条件 if(*(pattern+1)=='*')//如果第二个字符是*号 { if(*str==*pattern || (*pattern=='.' && *str!='\0'))如果第一个字符匹配 {  //分别对应: 匹配一次或多次、匹配一次、匹配零次 return isMatch(str+1, pattern) || isMatch(str+1, pattern+2) || isMatch(str, pattern+2); }else{ return isMatch(str, pattern+2); }

Python进阶丨正则表达式(上)

亡梦爱人 提交于 2020-01-08 15:08:38
正则表达式 . - 描述 官方解释 :正则表达式的概念是使用但字符串来描述、匹配一系列匹配某个句法规则的字符串。 通俗来说 :正则表达式是通过一定的匹配规则,从一个字符串中提取出想要的数据。 在Python中要使用正则表达式,首先要导入Python内置的 re 模块 - 普通字符 import re target = 'life is short,i learn python.' result = re . findall ( 'python' , target ) # findall是re库的一个重要方法,第一个参数是匹配规则,第二个参数是要匹配的目标字符串 # 这行代码的意思是从target中匹配'python',如果匹配到就返回,没有匹配到就返回空列表 result1 = re . findall ( 'go' , target ) print ( result ) # 输出结果:['python'] print ( result1 ) # 输出结果:[] 普通字符串匹配规则意义并不大,以帮情况下很少用到 - 元字符 字符集 用 [] 表示,中括号内可以写任意字符 例1 # 找出字符串中中间是d或者e的单词 import re target = 'abc acc aec agc adc aic' result = re . findall ( 'a[de]c' ,

正则表达式匹配

心不动则不痛 提交于 2020-01-08 08:30:36
题目描述 请实现一个函数用来匹配包括'.'和' '的正则表达式。模式中的字符'.'表示任意一个字符,而' '表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab ac a"匹配,但是与"aa.a"和"ab*a"均不匹配 python solution: # -*- coding:utf-8 -*- class Solution: # s, pattern都是字符串 def match(self, s, pattern): # 如果s与pattern都为空,则True if len(s) == 0 and len(pattern) == 0: return True # 如果s不为空,而pattern为空,则False elif len(s) != 0 and len(pattern) == 0: return False # 如果s为空,而pattern不为空,则需要判断 elif len(s) == 0 and len(pattern) != 0: # pattern中的第二个字符为*,则pattern后移两位继续比较 if len(pattern) > 1 and pattern[1] == '*': return self.match(s, pattern[2:]) else:

史上最全最常用的正则表达式(转自微信公众号:javascript)

人走茶凉 提交于 2020-01-08 08:00:29
很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,在这里分享一下。给自己留个底,也给朋友们做个参考。 一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$ 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$ 非零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$ 非负整数:^\d+$ 或 ^[1-9]\d*|0$ 非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$ 非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\

JS正则表达式

余生长醉 提交于 2020-01-08 06:32:51
一般情况下,正则表达式所作的三件事是: 1.测试字符串的某个模式。例如:当用户通过表单提交了个人信息,有邮编、电话、Email等等,通过正则可以判断这些数据是否满足相应的格式。这个叫做数据的有效性验证; 2.替换文本。可以在文档中标识某种特定的字符串,然后将其替换为空或者其他的字符串。 3.提取字符串。将满足正则的子字符串提取出来,保存在数组中。 正则表达式的语法就不贴出来了,许多地方都能找到。 下面介绍如何在JavaScript中使用正则表达式。 需要了解的基础有: . * ? + [] {} () | ^ $ 几种元字符的用法; 还有常见的组合: [a-z] [A-Z] [0-9] [^x] 以及: \d \w \s \D \W \S \b 捕获: () (?: ) 反向引用:\1 js的正则表达式使用: /\d+/ /\w+/i /\w+/g …… 这种写法和使用RegExp类的区别; js正则相关的函数的使用: test 、match、search 、exec 、replace 、split。 1.创建。 RegExp对象构造方式: var re = new RegExp("gx"); var re = new RegExp("gx","gim"); g:global,表示找到所有的匹配,如果不指定g选项,只匹配第一个 i:不区分大小写 m:匹配多行 字面量方式: var

正则表达式匹配

女生的网名这么多〃 提交于 2020-01-08 05:40:27
题目描述 请实现一个函数用来匹配包括'.'和' '的正则表达式。模式中的字符'.'表示任意一个字符,而' '表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab ac a"匹配,但是与"aa.a"和"ab*a"均不匹配 代码 class Solution { public: bool match(char* str, char* pattern) { return match(str, 0, pattern, 0); } bool match(char* str, int s, char* pat, int p) { if (!str[s] && !pat[p]) {//匹配 return true; } if (!pat[p]) {//模式串结束不匹配 return false; } if (pat[p + 1]) { if (pat[p + 1] == '*') { bool f = false;; if (str[s] && (str[s] == pat[p] || pat[p] == '.')) { f = match(str, s + 1, pat, p + 2) //*匹配一次 || match(str, s + 1, pat, p); //*匹配多次 } return f ||

正则表达式匹配

人走茶凉 提交于 2020-01-08 03:52:18
请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配 public class Solution { public boolean match(char[] str, char[] pattern) { return String.valueOf(str).matches(String.valueOf(pattern)); } } 来源: https://www.cnblogs.com/wxisme/p/5832945.html

python 正则表达式

旧巷老猫 提交于 2020-01-07 20:35:23
基本语法 # 1. 一般字符: 匹配字符的本身 print(re.match("abc","abcdefg")) print("abc" in "abcdefg") # 2 【.】 --匹配一个除\n 外所有的字符 # 需求: 三个字母,第一个是a print(re.match("^a..$","a35")) # 3 【\】 --转义字符 print(re.match("a\...","a.1#")) print(re.match("a[.]..","a.123")) print(re.match("a[.]..$","a.1#asdfasdf")) # 4 【】 --字符集中的任意一个字符 print(re.match("^a[bdc]e$","abe")) print(re.match("^a[bdc]e$","ade")) print(re.match("^a[bdc]e$","ace")) # 5 开头: ^ 结尾: $ --- 完全匹配 print(re.match("^a[bdc]f$","acf")) <re.Match object; span=(0, 3), match='abc'> True <re.Match object; span=(0, 3), match='a35'> <re.Match object; span=(0, 4), match='a.1#

正则表达式 简要手册

北城余情 提交于 2020-01-07 20:12:05
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> . 任意字符 [0-9] 数字 [a-zA-Z] 字母 ^ 匹配行的开始 $ 匹配行的结束 * 重复零次或则更多,例如a*b可匹配b,ab,aab,aaaaaaab + 重复一次以上,例如a+b可匹配ab,aab,aaaaaaaab。但不能匹配b了 ? 零次或则一次,例如ca?b匹配cb,cab但不匹被caab a{n} 匹配字符'a'重复n次 a{n,},字符a重复n次以上(含n次) a{n,m} a重复n到m次(含) *? 匹配前一个原子零次以上 +? 匹配前一个原子一次以上 ?? 匹配前一个原子零次以上 {n,}? 匹配前一个原子n次以上(含) {n,m}? 匹配前一个原子n到m次(含) | 或操作,例如ab(d|ef)匹配abd或则abef [] 字符集操作,例如[abc]将匹配任何单个字符'a','b','c' [a-d],表示a、b、c、d ^否操作,例如[^a-c]表示a至c之外的所有字符 \d 匹配一个数字字符 等价于[0-9] \D 匹配一个非数字字符 等价于[^0-9] \f 匹配一个换页符。等价于\x0c和\cL。 \n 匹配一个换行符。等价于\x0a和\cJ。 \r 匹配一个回车符。等价于\x0d和\cM。 \s 匹配任何不可见字符,包括空格、制表符、换页符等等 等价于[ \f\n\r