模式匹配

串的模式匹配

為{幸葍}努か 提交于 2019-11-29 19:43:56
串的模式匹配一般分为两种:简单模式匹配和KMP算法 #include <stdio.h> #include <stdlib.h> #define MaxSize 100 typedef struct{ char str[MaxSize+1]; int length; }Str;//串的存储结构 int index1(Str *str1,Str *str2){ int i=1,j=1; int pos=i;//记录当前主串开始匹配的起始位置 while(i<=str1->length&&j<=str2->length){ if(str1->str[i]==str2->str[j]){ i++; j++; } else{ j=1; i=++pos;//若匹配失败,则将起始位置的下一个位置开始 } } if(j>str2->length){ printf("模式串在主串中的位置:%d\n",pos); return pos; } else return 0; }//简单模式匹配 int GetLength(Str *str1){ int i=0; while(str1->str[i+1]){ i++; } return i; }//获得串的长度 void get_next(Str *str2,int next[]){ int i=1,j=0; next[1]=0; while(i

正则示例

不想你离开。 提交于 2019-11-29 19:07:53
基础概念: ^匹配头部 \s 匹配任何空白字符 包括空格、制表符、换页符 * 限定符,匹配前面的子表达式0或多次 ()表示一个字表达式的开始和结束位置 g 表示全局(global)模式,即模式将被应用于所有字符串,而非在发现第一个匹配项时立即 停止; $匹配输入字符结尾的位置 实例:去除字符串首尾空格 function trim(str){ return str.replace(/(^\s*)|(\s*$)/g) } 来源: https://www.cnblogs.com/ClaudiaYan/p/11527533.html

Django-路由系统

拟墨画扇 提交于 2019-11-29 17:31:02
Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表。 我们就是以这种方式告诉Django,遇到哪个URL的时候,要对应执行哪个函数。 URLconf配置 基本格式 from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图,参数,别名), ] 示例: from django.conf.urls import url from . import views urlpatterns = [ url(r'^articles/2003/$', views.special_case_2003), url(r'^articles/([0-9]{4})/$', views.year_archive), url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive), url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail), ] 参数说明 正则表达式:一个正则表达式字符串 views视图:一个可调用对象,通常为一个视图函数 参数

使用sed在文件中定位文本的方式

强颜欢笑 提交于 2019-11-29 17:10:45
sed是实现对流的编辑。通常,我们使用sed可以实现内容的编辑后然后保存成另外的一个文件,如果正确的话,才写入到源文件。但是某些时候,我们需要直接修改文件,因为,保存文件到一个文件,然后再覆盖原文件的办法显得很麻烦。其实很简单,只需要一个 -i 参数 就可以了。 比如,我想替换文件中的 properties 为 property ,可以使用 sed -i -n 's/properties/property/g' build.xml 另外 -n 选项可以取消屏幕的输出信息 PS: 经测试 部分内容有问题 需要更正 把一个文件里的文件传FTP. ftp -in <<EOF open 10.0.0.1 user uname passwd $(sed 's/^/mput /' ftpfile.txt) bye EOF 使用s e d在文件中定位文本的方式 x x为一行号,如1 x , y 表示行号范围从x到y,如2,5表示从第2行到第5行 / p a t t e r n / 查询包含模式的行。例如/ d i s k /或/[a-z]/ / p a t t e r n / p a t t e r n / 查询包含两个模式的行。例如/ d i s k / d i s k s / p a t t e r n / , x 在给定行号上查询包含模式的行。如/ r i b b o n / , 3 x

关于java中split的使用

一笑奈何 提交于 2019-11-29 16:09:26
之前在 http://shukuiyan.iteye.com/blog/507915 文中已经叙述过这个问题,但是最近一次笔试中居然有碰到了这个知识点,而且还做错了,囧!学艺不精啊。题目大概是这样的: Java代码 String s2="this is a test"; String sarray[]=s2.split("/s"); System.out.println("sarray.length="+sarray.length); 这个输出是什么还是编译出错?我想那个split方法中的参数要是"s"的话,输出一定是4了,就是将原来字符串分成了数组{"thi","i","a te","t"},但是原题split方法中的参数要是"/s",那么这个参数到底是嘛意思呢,实验后输出结果居然是1。 原因还得深究啊。 java.lang.string.split,即split 方法,它实现的功能是将一个字符串分割为子字符串,然后将结果作为字符串数组返回。 格式为: stringObj.split([separator,[limit]]) 其中stringObj是必选项,表示要被分解的 String 对象或文字。该对象不会被 split 方法修改。 separator 为可选项,表示字符串或正则表达式对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项

Django之路由系统

拥有回忆 提交于 2019-11-29 14:04:21
Django的路由系统 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表。 就是以这种方式告诉Django,对于URL调用这段代码,对于那个URL调用那段代码。 URLconf配置 基本格式: from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ] 注意: Django2.0版本中路由系统写法如下: from django.urls import path urlpatterns = [ path('articles/2003/', views.special_case_2003), path('articles/<int:year>/', views.year_archive), path('articles/<int:year>/<int:month>/', views.month_archive), path('articles/<int:year>/<int:month>/<slug:slug>/', views.article_detail), ] 参数说明: 正则表达式:一个正则表达式字符串 views视图函数:一个可调用对象

Django的路由系统

你。 提交于 2019-11-29 14:03:56
Django的路由系统 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的 映射表。 你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。 URLconf配置 基本格式: from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ] 注意: Django 2.0版本中的路由系统已经替换成下面的写法( 官方文档 ): from django.urls import path urlpatterns = [ path('articles/2003/', views.special_case_2003), path('articles/<int:year>/', views.year_archive), path('articles/<int:year>/<int:month>/', views.month_archive), path('articles/<int:year>/<int:month>/<slug:slug>/', views.article_detail), ] 参数说明: 正则表达式:一个正则表达式字符串

Django(四)路由系统

让人想犯罪 __ 提交于 2019-11-29 14:03:35
Django的路由系统 URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表。 你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。 URLconf配置 基本格式 from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ] 参数说明   正则表达式:一个正则表达式字符串   views视图函数:一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串   参数:可选的要传递给视图函数的默认参数(字典形式)   别名:一个可选的name参数 正则表达式详解 基本配置 from django.conf.urls import url from . import views urlpatterns = [ url(r'^articles/2003/$', views.special_case_2003), url(r'^articles/([0-9]{4})/$', views.year_archive), url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive), url(r'^articles/([0-9]

mysql的正则表达式

天大地大妈咪最大 提交于 2019-11-29 08:49:37
所谓正在表达式,就是通过模式去匹配一类字符串。MySQL支持的模式字符如下表所示: MySQL支持的模式字符 模式字符 含义 ^ 匹配字符串的开始部分 $ 匹配字符串的结束部分 . 匹配字符串中的任意一个字符 [字符集合] 匹配字符集合中的任意一个字符 [^字符集合] 匹配字符集合外的任意一个字符 str1|str2|str3 匹配str1,sr2和str3中的任意一个字符串 * 匹配字符,包含0个和1个 + 匹配字符,包含1个 字符串{N} 字符串出现n次 字符串{m,n} 字符串出现至少M次,最多N次 在模式匹配的时候,如果相符则返回1,否则返回0。 1. 执行带有"^"模式字符的SQL。 SELECT 'cjgong' REGEXP '^c' 特定字符开头,'cjgongcjgong' REGEXP '^cjgong' 特定字符串开头; 执行SQL,结果如下所示: 2. 执行带有"$"模式字符的SQL。 SELECT 'cjgong' REGEXP 'g$' 特定字符结尾,'cjgongcjgong' REGEXP 'cjgong$' 特定字符串结尾; 执行SQL,结果如下所示: 3. 执行带有"."模式字符的SQL。 SELECT 'cjgong' REGEXP '^c....g$' 匹配4个任意字符 执行SQL,结果如下所示: 4. 执行带有"[]"和"[^]

Python中re模块的使用

蓝咒 提交于 2019-11-28 23:06:21
compile() 编译正则表达式,返回一个正则表达式对象,该对象可复用。 re.compile(pattern, flags=0) # pattern:编译时用的表达式字符串 # flags:编译标志位,用于修改正则表达式匹配方式 常用 flags 标志 含义 re.S(DOTALL) 使 . 匹配包括换行符在内的所有字符 re.I(IGNORECASE) 忽略大小写 re.L(LOCALE) 本地化识别匹配,影响 \w, \W, \b, \B, \s, \S re.M(MULTILINE) 多行匹配,影响 ^ 和 $ re.X(VERBOSE) 详细模式,该模式下正则表达式可以是多行,忽略空白字符,且可以加注释 re.U 根据 Unicode 字符集解析字符,影响 \w, \W, \b, \B, \d, \D, \s, \S match() 判断目标字符串是否在 字符串开始处 匹配。 re.match(pattern, string, flags=0) # pattern:正则表达式对象 # string:目标字符串 用法: re.match('hel', 'hello world').group() # 'hel' re.match('hel', 'HELLO WORLD', re.I).group() # 'HEL' 注意: 不完全匹配,即只判断字符串开头是否匹配