红豆杉几年开花结果果这几个字用数字含义

山东期刊采编中心 学术期刊论文发表
关于数学课程标准中描述结果目标动词的辨析
郑义富 (广东中山)&
[摘& 要] 《数学课程标准》(2011年版)颁布后,一线教师对数学课程标准中的目标行为动词非常关注。清晰每个行为动词的&意义&及相互间的&关系&,是达成教学目标的关键。笔者从五个层面对描述结果目标的四个行为动词进行辨析。首先从文本含义上释义与分析,&了解、理解&重在&知&,&掌握、运用&重在&用&,虽一脉相承,但各有侧重。 再从课程标准表述上比较区分,强化辨识。然后在认知心理范畴内辨析与研究。继而论述在数学教学设计上的把握与运用,体现出对行为动词的&个性&的认识。最后叙述了在教育实践中的担忧与困惑。可以说&辨析&的递进过程恰如四个行为动词的递进关系,二者相得益彰。
[关键词]课程标准;结果目标;行为动词;辨析
[中图分类号]G633.6&&&&& [文献标识码]A
《数学课程标准》(2011年版)对数学课程总体目标的论述采取了一般与具体相结合的方式。其中用了两类词汇来体现目标。一类是&了解、理解,掌握、运用&,这一类是描述结果目标的行为动词。另一类就是&经历、体验,探索&,这属于过程性的用语。这些&动词&在四个领域不同学段中频繁出现。词汇的使用一定程度上反映了课程改革的基本思想的转变,同时也是2011年课程标准修改过程中的一个最基本的指导思想。[1]在教学中,只有正确理解这些词汇,才能合理设计课堂教学,科学组织学习活动,达成既定目标,促进学生全面、持续、和谐地发展。本文将结合小学数学教学实践,对《数学课程标准》(2011年版)中描述结果目标的四个动词&了解、理解,掌握、运用&从多个维度进行辨析,从而更好地理解《标准》,落实《标准》,促进专业成长,提升教学实效。
一、&从文本含义上释义与分析
1、了解是认识世界的开端,理解是了解后的个性呈现。
&了解&从文本含义来说基本释义是&打听、调查&,强调的是&知&的意愿,是&过程&。第二层含义是&知道得清楚&,强调的是打听、调查的结果。可见,&了解&这个词本身就含有两层递进关系。&理解&的释义包括:顺着脉理或条理进行剖析; 从道理上了解;指了解,认识;说理分析;见解。可见,理解比了解在&结果&上更进一步。可以说是在了解的基础上得到了理解。了解是开始,理解是目的。从了解开始,然后就有了理解。
2、掌握是运用的基础,运用是掌握的发挥。
&掌握&的基本文本解释是&力所能及或权力范围&。&运用&是指&根据事物的特性加以利用&,也可作&计谋、打算&。由上可见,二者释义有重叠。但&掌握&更强调的是&非常熟悉&、了解透彻。词语&了如指掌&可说是对掌握的另一种诠释。而&运用&则强调了&抓住事物的特性&进行&主动利用&。这就不仅是&了如指掌&,而是&灵活使用&了。&运用&自然是具有了自主性与选择性。二者同样有着递进关系和因果关系。因为&掌握&所以可&运用&,有了&掌握&的基础,才可以进一步&运用&。&了解、理解&重在&知&,&掌握、运用&重在&用&,虽一脉相承,但各有侧重。互不可缺又互为依托。
二、从课程标准表述上比较与区分
1、&了解&是辨识事物特征,&理解&是熟知事物特征去区别。
了解指&从具体实例中知道或举例说明对象的有关特征;根据对象的特征,从具体情境中辨认或者举例说明对象&。同类词:知道,初步认识。[2]从这句话中可见,了解的方向是&事物特征&,了解的途径是&举例说明&,了解的要求是&在情境中辨认&。理解是指&描述对象的特征和由来,阐述此对象与相关对象之间的区别和联系&。同类词:认识,会。[3] 从这句话中可见,是否理解了要看是否&知其然,知其所以然&,能否清晰&区别与联系&。所以说:&了解&是根据事物特征去辨认,&理解&是熟知事物特征去区别。
2、&掌握&体现在能否迁移于新情境中,&运用&则体现在个体的自主性。
&&&& 课标中这样解析: &掌握&是&在理解的基础上把对象用于新的情境&,同类词是&能&;&运用&是&综合使用已掌握的对象,选择或创造适当的方法解决问题&,同类词是&证明&。[4] 因此,&掌握&的特征是&将知识用于新的情境&,它应该是对知识的直接运用,是模仿;而&运用&的特征则是&综合性&、&选择性&与&创造性&,是整合运用,是灵活运用,是创新运用,是自主运用。&掌握&的方式方法可能是雷同的,照猫画虎的。但&运用&则一定是&自我&的。这应该是《标准》对二者最重要的区别吧。
&&& 《标准》中关于目标动词的同类词汇出示的并不多,但教学参考中出现了大量的相关动词词汇。了解这些&同类词汇&对每一节课教学目标的设定都很重要。如:与&了解&属同一目标的词还有:体会,知道,识别,感知,认识,初步体会,初步学会,初步理解,举例说明,表述,描述,说明,表达,表示,刻画,解释等。[5]
三、在认知心理范畴内辨析与研究
1、&数学学习是一种&认知&的学习。
瑞士发展心理学家皮亚杰认为是自己把生物学的原则和方法运用到人类发展的研究中,他将生物学的许多术语直接引入到心理学中。[6]按皮亚杰的认知发展(cognitve development)理论,小学数学的学习应该属于具体运算阶段。在这一阶段中又如何辨析&认知&呢?何为认知?顾明远主编的《教育大词典》把它解释为&在意识水平上对思想和表象的加工。& [7]在心理学的层面上将数学学习视为一种&认知&学习是合宜的。施良方引用美国学者约翰.豪斯顿等人将&认知&定义为:认知即信息加工,认知即心理上的符号运算,认知即问题解决,认知即思维,认知是一组相关心理活动。[8] 数学学习当然是涉及认知动作技能和态度的三种结果的全方位的学习,但就其作为学校课程中的一个&学科&而言,它必然要以&知识&为起点,从认知的侧面切入来构建起科学的教育实施体系。[9]
2、&了解&是认知的开始,&理解&是认知的成熟。
认知心理学家试图探讨学习者内部心理结构的性质以及它们是如何变化的。所谓心理结构,就是指学习者知觉和概括自然社会和人类社会的方式。学习的基础是学习者内部心理结构的改组,而不是刺激&&反应联结的形式或行为习惯的加强或改变。[10]显而易见,这一&改组&的过程是逐渐&成熟&的。在认知心理范畴内,&了解&是对学习材料有一定的认识和记忆。包括具体概念,作用,意义等的认知和学习。其所要求的心理过程主要是记忆。这是最低水平的认知学习结果。理解就是因每个人的大脑对事物分析决定的一种对事物本质的认识,一般也称了解或领会。理解是个体对事件的逻辑表示赞同,也不排除有个人体验,但主要是承认事件的逻辑关系。由此可见,&了解&所涉及的学习心理主要是&模仿&。 &理解&强调&独立操作&。所以说&了解是认知的开始,理解是认知的成熟&。
3、&掌握&是认知的理想的结果,&运用&则是认知的最终目的。
根据布鲁姆对教育认知目标的分析可知,其中&掌握&指:指能理解学习材料的内涵和意义。包括具体分类,区别,流程、误区等的认知和学习。可以借助三种形式来表明材料的领会。一是转换,即用自己的话或用与原先表达方式不同的方式表达自己的思想;二是解释,即对一项信息加以说明或概述;三是推断,即估计将来的趋势(预期的后果)。指能将学习材料用于新的具体情境,包括原则、方法、技巧、规律的拓展。而&运用&则代表较高水平的学习成果。应用需要建立对知识点掌握的基础上。&运用&是在&掌握&基础上的必然的提升。所以说,掌握是认知的理想的结果,运用则是认知的最终目的
&&& 4、四个目标动词是一个完整的认知过程。
了解、理解、掌握、运用是认知的一个完整的心理过程,切不可人为地割裂。从脑科学的研究来看,这四个目标可以划分为三个层次:了解、理解、掌握和运用。这样划分的依据是因为&脑通过如下三种方式形成了这一网络:通过具体的经验、表征或者符号学习以及抽象学习&。[11]这一论述更能说明它们是一个完整的过程。这对应了心理学上心智形成的四个阶段。包括:心智技能的认知阶段,即对心智活动的任务及其结果进行定向;借助外在物体的操作进行心智活动;摆脱外在物体,通过自己出声的外部语言进行心智活动;借助内部语言简洁自动地进行心智活动。[12]
四、在数学教学设计上把握与运用
1、正确解读目标动词,合理设置目标层次。
以六年级&百分数的意义和读写&为例。教学目标中&收集整理生活中的百分数,了解百分数表示的具体意义;充分感受百分数的广泛应用&,这些都属于&理解&的目标层次。而&结合具体情境,理解百分数的意义,掌握读、写方法;结合实例说出百分数的具体含义,发展数感;交流自己的认识和理解,描述(定义的方式)百分数的意义&,这些则属于&理解&的目标层次。&主动比较、辨析分数与百分数的区别和联系;精炼描述语言;掌握读、写方法;结合实例发展数感;自主建构百分数的读与写知识,主动总结读写法&,这些属于&掌握&的目标层次,&交流学习经验,提升辨识、归纳能力;主动运用百分数描述生活实例,解决相应的问题;充分感受百分数的广泛应用,增强应用意识&。这些就应该是&运用&的目标层次。
2、深入理解目标动词的&功能&,实现教与学的统一。
四个目标动词的功能绝不仅仅是评价学生的&标尺&。它的功能性包括:对课程设置的规范;对教师教学的建议;对学生学业的评价。在现阶段我认为至少具有上述三方面的功能。教学中要深入解析这些功能,合理开展数学活动。要实现&有效教学活动是学生学与教师教的统一&,就应该在特定的数学教学目标下去追求教师和学生相互的有效交往。&数学逻辑序、学生认知发展序与数学教学流程也在这样的活动中得到适时的调整并最终趋于协调,教学的有效性就得到了保障。& [13]
&& 《数学课程标准》(2011年版)颁布后,对数学课程标准中的目标行为动词的辨析,紧迫且非常必要。一线教师必须要清晰每个行为动词的&意义&及相互间的&关系&!这将有利于我们准确地理解《标准》,领悟《标准》中所蕴含的育人思想,树立起正确地育人观念,从而科学地落实《标准》,践行新课改!
参考文献:
[1] 王尚志(首都师范大学),顾 沛 (南开大学), 刘 晓 玫 (首都师范大学). 《数学&数学课程&学生发展》专题讲座.2011.
[2] [3] [4] 中华人民共和国教育部. 全日制义务教育数学课程标准(2011年版)[S]. 北京:北京师范大学出版社,.
[5] 杨庆余.小学数学课程与教学[M] .北京: 中国人民大学出版社,.
[6]& [美]罗伯特&斯莱文(Roberte&Slavin).姚梅林,等译,教育心理学&&理论与实践[M].北京:人民邮电出版社,2004,24.
[7] 顾明远.教育大词典&第五卷&&教育心理学[M] .上海:上海教育出版社,1990.
[8] 施良方,认知与优化教学[M].北京:中国科学技术出版社,1991
[9] 周小山,雷开泉.新课程视野中的数学教育[M] .成都: 四川大学出版社,.
[10] 何小亚.与新课程同行&&数学教与学的心理学[M] .广州:华南理工大学出版社,2003,65.
&[11]& [美]Patricia Wolfe.脑的功能&&将研究结果应用于实践: 北京师范大学&认知神经科学与学习&国家重点实验室,脑科学与教育应用研究中心译[M] .北京: 中国轻工业出版社,.
[12] 胡振坤.小学心理学[M] .武汉: 华中科技大学出版社,.
[13] 黄翔,童莉,沈林.数学课程基本理念的丰富与发展&&从义务教育数学课程标准的修订看数学课程理念的新变化[J] .中国教育学刊,2012(8),49.
作者简介:
郑义富(1974.4& ),男,汉族,广东中山人,大学本科,小学高级教师(副高),中山市实验小学教育科研室主任。
数学学习与研究
投稿邮箱:
投稿咨询:9(周编辑)
在线咨询编辑
周一到周五 9:00-17:00
点击头像,直接交谈。下班后点击留言。
热门点击数学类论文
《数学学习与研究》相关问题
&&鲁ICP备号&&版权所有:刊易- &&&投稿热线:400-666-9544下面是一组预计世界人口数量的数字,请根据表格内容,用“未来”“爆炸”“解决”“计划”这几个词描述所列现象并提出应对措施。(要求语句连贯,不超过50字。)(2分)10万年前300年前年年320万5.4亿50亿60亿约90亿约102亿未来世界人口将出现大爆炸,地球承受的压力是空前的。(1分)解决这个问题的唯一办法就是:人类要计划生育。(1分)(意思对即可)福建省福州市2014届高三5月综合练习语文试题答案
未来世界人口将出现大爆炸,地球承受的压力是空前的。(1分)解决这个问题的唯一办法就是:人类要计划生育。(1分)(意思对即可)相关试题正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
列目录时, dir *.txt或ls *.txt中的*.txt就不是一个正则表达式,因为这里*与正则式的*的含义是不同的。
正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
3.1 普通字符
由所有那些未显式指定为元字符的打印和非打印字符组成。这包括所有的大写和小写字母字符,所有数字,所有标点符号以及一些符号。
3.2 非打印字符
匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 ‘c’ 字符。
匹配一个换页符。等价于 \x0c 和 \cL。
匹配一个换行符。等价于 \x0a 和 \cJ。
匹配一个回车符。等价于 \x0d 和 \cM。
匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
匹配一个制表符。等价于 \x09 和 \cI。
匹配一个垂直制表符。等价于 \x0b 和 \cK。
3.3 特殊字符
所谓特殊字符,就是一些有特殊含义的字符,如上面说的”*.txt”中的*,简单的说就是表示任何字符串的意思。如果要查找文件名中有*的文件,则需要对*进行转义,即在其前加一个\。ls \*.txt。正则表达式有以下特殊字符。
匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n’ 或 ‘\r’。要匹配 $ 字符本身,请使用 \$。
标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。
匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。
匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。
匹配除换行符 \n之外的任何单字符。要匹配 .,请使用 \。
标记一个中括号表达式的开始。要匹配 [,请使用 \[。
匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。
将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n’ 匹配字符 ‘n’。’\n’ 匹配换行符。序列 ‘\\’ 匹配 “\”,而 ‘\(’ 则匹配 “(”。
匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。
标记限定符表达式的开始。要匹配 {,请使用 \{。
指明两项之间的一个选择。要匹配 |,请使用 \|。
构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与操作符将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。
3.4 限定符
限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有*或+或?或{n}或{n,}或{n,m}共6种。
*、+和?限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。
正则表达式的限定符有:
匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}。
匹配前面的子表达式一次或多次。例如,’zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。
匹配前面的子表达式零次或一次。例如,”do(es)?” 可以匹配 “do” 或 “does” 中的”do” 。? 等价于 {0,1}。
n 是一个非负整数。匹配确定的 n 次。例如,’o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。
n 是一个非负整数。至少匹配n 次。例如,’o{2,}’ 不能匹配 “Bob” 中的 ‘o’,但能匹配 “foooood” 中的所有 o。’o{1,}’ 等价于 ‘o+’。’o{0,}’ 则等价于 ‘o*’。
m 和 n 均为非负整数,其中n &= m。最少匹配 n 次且最多匹配 m 次。例如,”o{1,3}” 将匹配 “fooooood” 中的前三个 o。’o{0,1}’ 等价于 ‘o?’。请注意在逗号和两个数之间不能有空格。
 3.5 定位符
用来描述字符串或单词的边界,^和$分别指字符串的开始与结束,\b描述单词的前或后边界,\B表示非单词边界。不能对定位符使用限定符。
用圆括号将所有选择项括起来,相邻的选择项之间用|分隔。但用圆括号会有一个副作用,是相关的匹配会被缓存,此时可用?:放在第一个选项前来消除这种副作用。
其中?:是非捕获元之一,还有两个非捕获元是?=和?!,这两个还有更多的含义,前者为正向预查,在任何开始匹配圆括号内的正则表达式模式的位置来匹配搜索字符串,后者为负向预查,在任何开始不匹配该正则表达式模式的位置来匹配搜索字符串。
3.7 后向引用
对一个正则表达式模式或部分模式两边添加圆括号将导致相关匹配存储到一个临时缓冲区中,所捕获的每个子匹配都按照在正则表达式模式中从左至右所遇到的内容存储。存储子匹配的缓冲区编号从 1 开始,连续编号直至最大 99 个子表达式。每个缓冲区都可以使用 ‘\n’ 访问,其中 n 为一个标识特定缓冲区的一位或两位十进制数。
可以使用非捕获元字符 ‘?:’, ‘?=’, or ‘?!’ 来忽略对相关匹配的保存。
4. 各种操作符的运算优先级
相同优先级的从左到右进行运算,不同优先级的运算先高后低。各种操作符的优先级从高到低如下:
(), (?:), (?=), []
圆括号和方括号
*, +, ?, {n}, {n,}, {n,m}
^, $, \anymetacharacter
位置和顺序
“或”操作
5. 全部符号解释 
将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,’n’ 匹配字符 “n”。’\n’ 匹配一个换行符。序列 ‘\\’ 匹配 “\” 而 “\(” 则匹配 “(”。
匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置。
匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 ‘\n’ 或 ‘\r’ 之前的位置。
匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}。
匹配前面的子表达式一次或多次。例如,’zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。
匹配前面的子表达式零次或一次。例如,”do(es)?” 可以匹配 “do” 或 “does” 中的”do” 。? 等价于 {0,1}。
n 是一个非负整数。匹配确定的 n 次。例如,’o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。
n 是一个非负整数。至少匹配n 次。例如,’o{2,}’ 不能匹配 “Bob” 中的 ‘o’,但能匹配 “foooood” 中的所有 o。’o{1,}’ 等价于 ‘o+’。’o{0,}’ 则等价于 ‘o*’。
m 和 n 均为非负整数,其中n &= m。最少匹配 n 次且最多匹配 m 次。例如,”o{1,3}” 将匹配 “fooooood” 中的前三个 o。’o{0,1}’ 等价于 ‘o?’。请注意在逗号和两个数之间不能有空格。
当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 “oooo”,’o+?’ 将匹配单个 “o”,而 ‘o+’ 将匹配所有 ‘o’。
匹配除 “\n” 之外的任何单个字符。要匹配包括 ‘\n’ 在内的任何字符,请使用象 ‘[.\n]’ 的模式。
匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0…$9 属性。要匹配圆括号字符,请使用 ‘\(’ 或 ‘\)’。
(?:pattern)
匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 “或” 字符 (|) 来组合一个模式的各个部分是很有用。例如, ‘industr(?:y|ies) 就是一个比 ‘industry|industries’ 更简略的表达式。
(?=pattern)
正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,’Windows (?=95|98|NT|2000)’ 能匹配 “Windows 2000″ 中的 “Windows” ,但不能匹配 “Windows 3.1″ 中的 “Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
(?!pattern)
负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如’Windows (?!95|98|NT|2000)’ 能匹配 “Windows 3.1″ 中的 “Windows”,但不能匹配 “Windows 2000″ 中的 “Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始
匹配 x 或 y。例如,’z|food’ 能匹配 “z” 或 “food”。’(z|f)ood’ 则匹配 “zood” 或 “food”。
字符集合。匹配所包含的任意一个字符。例如, ‘[abc]’ 可以匹配 “plain” 中的 ‘a’。
负值字符集合。匹配未包含的任意字符。例如, ‘[^abc]’ 可以匹配 “plain” 中的’p'。
字符范围。匹配指定范围内的任意字符。例如,’[a-z]’ 可以匹配 ‘a’ 到 ‘z’ 范围内的任意小写字母字符。
负值字符范围。匹配任何不在指定范围内的任意字符。例如,’[^a-z]’ 可以匹配任何不在 ‘a’ 到 ‘z’ 范围内的任意字符。
匹配一个单词边界,也就是指单词和空格间的位置。例如, ‘er\b’ 可以匹配”never” 中的 ‘er’,但不能匹配 “verb” 中的 ‘er’。
匹配非单词边界。’er\B’ 能匹配 “verb” 中的 ‘er’,但不能匹配 “never” 中的 ‘er’。
匹配由 x 指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 ‘c’ 字符。
匹配一个数字字符。等价于 [0-9]。
匹配一个非数字字符。等价于 [^0-9]。
匹配一个换页符。等价于 \x0c 和 \cL。
匹配一个换行符。等价于 \x0a 和 \cJ。
匹配一个回车符。等价于 \x0d 和 \cM。
匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
匹配一个制表符。等价于 \x09 和 \cI。
匹配一个垂直制表符。等价于 \x0b 和 \cK。
匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’。
匹配任何非单词字符。等价于 ‘[^A-Za-z0-9_]’。
匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,’\x41′ 匹配 “A”。’\x041′ 则等价于 ‘\x04′ & “1″。正则表达式中可以使用 ASCII 编码。.
匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,’(.)\1′ 匹配两个连续的相同字符。
标识一个八进制转义值或一个向后引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为向后引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。
标识一个八进制转义值或一个向后引用。如果 \nm 之前至少有 nm 个获得子表达式,则 nm 为向后引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的向后引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。
如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。
匹配 n,其中 n 是一个用四个十六进制数字表示的 Unicode 字符。例如, \u00A9 匹配版权符号 (?)。
6. 部分例子
正则表达式
/\b([a-z]+) \1\b/gi
一个单词连续出现的位置
/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/
将一个URL解析为协议、域、端口及相对路径
/^(?:Chapter|Section) [1-9][0-9]{0,1}$/
定位章节的位置
A至z共26个字母再加一个-号。
可匹配chapter,而不能terminal
可匹配chapter,而不能aptitude
/Windows(?=95 |98 |NT )/
可匹配Windows95或Windows98或WindowsNT,当找到一个匹配后,从Windows后面开始进行下一次
7. 正则表达式匹配规则
7.1 基本模式匹配
一切从最基本的开始。模式,是正规表达式最基本的元素,它们是一组描述字符串特征的字符。模式可以很简单,由普通的字符串组成,也可以非常复杂,往往用特殊的字符表示一个范围内的字符、重复出现,或表示上下文。例如:
这个模式包含一个特殊的字符^,表示该模式只匹配那些以once开头的字符串。例如该模式与字符串”once upon a time”匹配,与”There once was a man from NewYork”不匹配。正如如^符号表示开头一样,$符号用来匹配那些以给定模式结尾的字符串。
这个模式与”Who kept all of this cash in a bucket”匹配,与”buckets”不匹配。字符^和$同时使用时,表示精确匹配(字符串与模式一样)。例如:
只匹配字符串”bucket”。如果一个模式不包括^和$,那么它与任何包含该模式的字符串匹配。例如:模式
There once was a man from NewYork
Who kept all of his cash in a bucket.
是匹配的。
在该模式中的字母(o-n-c-e)是字面的字符,也就是说,他们表示该字母本身,数字也是一样的。其他一些稍微复杂的字符,如标点符号和白字符(空格、制表符等),要用到转义序列。所有的转义序列都用反斜杠(\)打头。制表符的转义序列是:\t。所以如果我们要检测一个字符串是否以制表符开头,可以用这个模式:
类似的,用\n表示“新行”,\r表示回车。其他的特殊符号,可以用在前面加上反斜杠,如反斜杠本身用\\表示,句号.用\.表示,以此类推。
7.2 字符簇
在INTERNET的程序中,正规表达式通常用来验证用户的输入。当用户提交一个FORM以后,要判断输入的电话号码、地址、EMAIL地址、信用卡号码等是否有效,用普通的基于字面的字符是不够的。
所以要用一种更自由的描述我们要的模式的办法,它就是字符簇。要建立一个表示所有元音字符的字符簇,就把所有的元音字符放在一个方括号里:
[AaEeIiOoUu]
这个模式与任何元音字符匹配,但只能表示一个字符。用连字号可以表示一个字符的范围,如:
[a-z] //匹配所有的小写字母
[A-Z] //匹配所有的大写字母
[a-zA-Z] //匹配所有的字母
[0-9] //匹配所有的数字
[0-9\.\-] //匹配所有的数字,句号和减号
[ \f\r\t\n] //匹配所有的白字符
同样的,这些也只表示一个字符,这是一个非常重要的。如果要匹配一个由一个小写字母和一位数字组成的字符串,比如”z2″、”t6″或”g7″,但不是”ab2″、”r2d3″ 或”b52″的话,用这个模式:
^[a-z][0-9]$
尽管[a-z]代表26个字母的范围,但在这里它只能与第一个字符是小写字母的字符串匹配。
前面曾经提到^表示字符串的开头,但它还有另外一个含义。当在一组方括号里使用^是,它表示“非”或“排除”的意思,常常用来剔除某个字符。还用前面的例子,我们要求第一个字符不能是数字:
^[^0-9][0-9]$
这个模式与”&5″、”g7″及”-2″是匹配的,但与”12″、”66″是不匹配的。下面是几个排除特定字符的例子:
[^a-z] //除了小写字母以外的所有字符
[^\\\/\^] //除了(\)(/)(^)之外的所有字符
[^\”\’] //除了双引号(”)和单引号(’)之外的所有字符
特殊字符”.” (点,句号)在正规表达式中用来表示除了“新行”之外的所有字符。所以模式”^.5$”与任何两个字符的、以数字5结尾和以其他非“新行”字符开头的字符串匹配。模式”.”可以匹配任何字符串,除了空串和只包括一个“新行”的字符串。
PHP的正规表达式有一些内置的通用字符簇,列表如下:
字符簇含义
[[:alpha:]] 任何字母
[[:digit:]] 任何数字
[[:alnum:]] 任何字母和数字
[[:space:]] 任何白字符
[[:upper:]] 任何大写字母
[[:lower:]] 任何小写字母
[[:punct:]] 任何标点符号
[[:xdigit:]] 任何16进制的数字,相当于[0-9a-fA-F]
7.3 确定重复出现
到现在为止,你已经知道如何去匹配一个字母或数字,但更多的情况下,可能要匹配一个单词或一组数字。一个单词有若干个字母组成,一组数字有若干个单数组成。跟在字符或字符簇后面的花括号({})用来确定前面的内容的重复出现的次数。
字符簇 含义
^[a-zA-Z_]$ 所有的字母和下划线
^[[:alpha:]]{3}$ 所有的3个字母的单词
^a{4}$ aaaa
^a{2,4}$ aa,aaa或aaaa
^a{1,3}$ a,aa或aaa
^a{2,}$ 包含多于两个a的字符串
^a{2,} 如:aardvark和aaab,但apple不行
a{2,} 如:baad和aaa,但Nantucket不行
\t{2} 两个制表符
.{2} 所有的两个字符
这些例子描述了花括号的三种不同的用法。一个数字,{x}的意思是“前面的字符或字符簇只出现x次”;一个数字加逗号,{x,}的意思是“前面的内容出现x或更多的次数”;两个用逗号分隔的数字,{x,y}表示“前面的内容至少出现x次,但不超过y次”。我们可以把模式扩展到更多的单词或数字:
^[a-zA-Z0-9_]{1,}$ //所有包含一个以上的字母、数字或下划线的字符串
^[0-9]{1,}$ //所有的正数
^\-{0,1}[0-9]{1,}$ //所有的整数
^\-{0,1}[0-9]{0,}\.{0,1}[0-9]{0,}$ //所有的小数
最后一个例子不太好理解,是吗?这么看吧:与所有以一个可选的负号(\-{0,1})开头(^)、跟着0个或更多的数字([0-9]{0,})、和一个可选的小数点(\.{0,1})再跟上0个或多个数字([0-9]{0,}),并且没有其他任何东西($)。下面你将知道能够使用的更为简单的方法。
特殊字符”?”与{0,1}是相等的,它们都代表着:“0个或1个前面的内容”或“前面的内容是可选的”。所以刚才的例子可以简化为:
^\-?[0-9]{0,}\.?[0-9]{0,}$
特殊字符”*”与{0,}是相等的,它们都代表着“0个或多个前面的内容”。最后,字符”+”与 {1,}是相等的,表示“1个或多个前面的内容”,所以上面的4个例子可以写成:
^[a-zA-Z0-9_]+$ //所有包含一个以上的字母、数字或下划线的字符串
^[0-9]+$ //所有的正数
^\-?[0-9]+$ //所有的整数
^\-?[0-9]*\.?[0-9]*$ //所有的小数
当然这并不能从技术上降低正规表达式的复杂性,但可以使它们更容易阅读。
正则表达式非常有用,查找、匹配、处理字符串、替换和转换字符串,输入输出等。而且各种语言都支持,例如.NET正则库,JDK正则包, Perl, JavaScript等各种脚本语言都支持正则表达式。下面整理一些常用的正则表达式。
将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 &n&。'\n' 匹配一个换行符。序列 '\\' 匹配 &\& 而 &\(& 则匹配 &(&。
匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。
匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。
匹配前面的子表达式零次或多次。例如,zo* 能匹配 &z& 以及 &zoo&。* 等价于{0,}。
匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 &zo& 以及 &zoo&,但不能匹配 &z&。+ 等价于 {1,}。
匹配前面的子表达式零次或一次。例如,&do(es)?& 可以匹配 &do& 或 &does& 中的&do& 。? 等价于 {0,1}。
n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 &Bob& 中的 'o',但是能匹配 &food& 中的两个 o。
n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 &Bob& 中的 'o',但能匹配 &foooood& 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
m 和 n 均为非负整数,其中n &= m。最少匹配 n 次且最多匹配 m 次。例如,&o{1,3}& 将匹配 &fooooood& 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。
当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 &oooo&,'o+?' 将匹配单个 &o&,而 'o+' 将匹配所有 'o'。
匹配除 &\n& 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。
匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0…$9 属性。要匹配圆括号字符,请使用 '\(' 或 '\)'。
(?:pattern)
匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 &或& 字符 (|) 来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。
(?=pattern)
正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,'Windows (?=95|98|NT|2000)' 能匹配 &Windows 2000& 中的 &Windows& ,但不能匹配 &Windows 3.1& 中的 &Windows&。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
(?!pattern)
负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配 &Windows 3.1& 中的 &Windows&,但不能匹配 &Windows 2000& 中的 &Windows&。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始
匹配 x 或 y。例如,'z|food' 能匹配 &z& 或 &food&。'(z|f)ood' 则匹配 &zood& 或 &food&。
字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 &plain& 中的 'a'。
负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 &plain& 中的'p'。
字符范围。匹配指定范围内的任意字符。例如,'[a-z]' 可以匹配 'a' 到 'z' 范围内的任意小写字母字符。
负值字符范围。匹配任何不在指定范围内的任意字符。例如,'[^a-z]' 可以匹配任何不在 'a' 到 'z' 范围内的任意字符。
匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配&never& 中的 'er',但不能匹配 &verb& 中的 'er'。
匹配非单词边界。'er\B' 能匹配 &verb& 中的 'er',但不能匹配 &never& 中的 'er'。
匹配由 x 指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。
匹配一个数字字符。等价于 [0-9]。
匹配一个非数字字符。等价于 [^0-9]。
匹配一个换页符。等价于 \x0c 和 \cL。
匹配一个换行符。等价于 \x0a 和 \cJ。
匹配一个回车符。等价于 \x0d 和 \cM。
匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
匹配一个制表符。等价于 \x09 和 \cI。
匹配一个垂直制表符。等价于 \x0b 和 \cK。
匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。
匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。
匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,'\x41' 匹配 &A&。'\x041' 则等价于 '\x04' & &1&。正则表达式中可以使用 ASCII 编码。
匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,'(.)\1' 匹配两个连续的相同字符。
标识一个八进制转义值或一个向后引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为向后引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。
标识一个八进制转义值或一个向后引用。如果 \nm 之前至少有 nm 个获得子表达式,则 nm 为向后引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的向后引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。
如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。
使正则表达式对大小写不敏感, (?-i)是关闭大小写不敏感
(?i)te(?-i)st应该匹配TEst,但是不能匹配teST或TEST.
开启“单行模式”,即点号“.”匹配新行符
开启“多行模式”,即“^”和“$”匹配新行符的前面和后面的位置。
只能输入数字
只能输入n位的数字
只能输入至少n位的数字
只能输入m~n位的数字
^(0|[1-9][0-9]*)$
只能输入零和非零开头的数字
^[0-9]+(.[0-9]{2})?$
只能输入有两位小数的正实数
^[0-9]+(.[0-9]{1,3})?$
只能输入有1~3位小数的正实数
^\+?[1-9][0-9]*$
只能输入非零的正整数
^\-[1-9][]0-9&*$
只能输入非零的负整数
只能输入长度为3的字符
^[A-Za-z]+$
只能输入由26个英文字母组成的字符串
^[A-Za-z0-9]+$
只能输入由数字和26个英文字母组成的字符串
只能输入由数字、26个英文字母或者下划线组成的字符串
^[a-zA-Z]\w{5,17}$
验证用户密码:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
[^%&',;=?$\x22]+
验证是否含有^%&',;=?$\&等字符
^[\u4e00-\u9fa5]{0,}$
只能输入汉字
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
验证Email地址
^\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
验证InternetURL
^\d{15}|\d{18}$
验证身份证号(15位或18位数字)
^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$
验证IP地址
匹配两个两个重叠出现的字符
例如,&aabbc11asd&, 返回结果为aa bb 11三组match
&(?&tag&[^\s&]+)[^&]*&.*&/\k&tag&&
匹配成对的HTML标签
不出现,负声明
下例演示如何取得一个&a&标签对中的全部内容,即使其中包含别的HTML tag。
string newsContent = @&url:&a href=&&1.html&&&&img src=&&1.gif&&&test&span style=&&color:&&&
Regex&/span&&/a&.&;
Regex regEnd = new Regex(@&&\s*a[^&]*&([^&]|&(?!/a))*&\s*/a\s*&&,RegexOptions.Multiline);
常用的组匹配:(实用)
匹配exp并且捕获到一个自动命名的组
(?&name&exp)
匹配exp并且捕获到组’name’
exp出现在声明右侧,但exp不作为匹配
括号中的模式必须出现在声明右侧,但不作为匹配的一部分 ,例如:
输入: public keywod string &abc&;
正则:\b\w+(?=ing\b),返回“str”,
意思为:匹配以ing结束的单词,但ing不作为返回
exp出现在声明左侧,但exp不作为匹配
括号中的模式必须出现在声明左侧,但不作为匹配的一部分 ,例如:
输入: public remember string &abc&;
正则:(?&=\bre)\w+\b,返回“member”,
意思为:匹配以re开头的单词,但re不作为返回
exp不出现在声明右侧,但exp不作为匹配
括号中的模式必须不出现在声明右侧 ,例如:
输入: remember aqa bqu &abc&;
正则:\b\w*q(?!u)\w*\b,返回“aqa”,
意思为:匹配带q后面不是跟随u的单词
exp不出现在声明左侧,但exp不作为匹配
输入:public string keywod = &abc&; string value = &test&;
目的:匹配 关键字=&&,例如获得关键字keyword,value;获得等于的值abc和test
表达式:string (?&x&[^=]*?) *= *(?&y&[^;]*?);
private void ParseKeywords(string input)
System.Text.RegularExpressions.MatchCollection mc =
System.Text.RegularExpressions.Regex.Matches(input, @&string (?&x&[^=]*?) *= *(?&y&[^;]*?);&);
if (mc != null && mc.Count & 0)
foreach (System.Text.RegularExpressions.Match m in mc)
string keyword = m.Groups[&x&].V
string value = m.Groups[&y&].V
2. 匹配并替换
输入:public &%=classname%&Extension : IExt
目的:匹配 &%= %&中间的classname并替换
表达式:&%=.*%&
private string Replace(string input)
return Regex.Replace(input, @&&%=.*%&&, new MatchEvaluator(RefineCodeTag), RegexOptions.Singleline);
string RefineCodeTag(Match m)
string x = m.ToString();
x = Regex.Replace(x, &&%=&, &&);
x = Regex.Replace(x, &%&&, &&);
return x.Trim() + &,&;
正则表达式选项RegexOptions:
ExplicitCapture
只有定义了命名或编号的组才捕获
IgnoreCase
不区分大小写
IgnorePatternWhitespace
消除模式中的非转义空白并启用由 # 标记的注释。
多行模式,其原理是修改了^和$的含义
SingleLine
单行模式,和MultiLine相对应
正则表达式替换的其他功能:
把匹配的第number组替换成替换表达式
这段代码返回的是 “01 012 03 05”
就是说,对组一的每个匹配结果都用&0$1&这个表达式来替换,&0$1&中&$1&由组1匹配的结果代入
public static void Main()
string s = &1 12 3 5&;
s = Regex.Replace(s,@&(\d+)(?#这个是注释)&,&0$1&,piled|RegexOptions.IgnoreCase);
Console.WriteLine(s);
Console.ReadLine();
把匹配的组名为&name&的组替换成表达式,
上例的Regex expression改成@&(?&name&\d+)(?#这个是注释)&后面的替换式改为&0${name}&结果是一样的
做$的转义符,如上例表达式改成@&(?&name&\d+)(?#这个是注释)&和&$$${name}&,则结果为&$1 $12 $3 $5&
替换整个匹配
替换匹配前的字符
替换匹配后的字符
替换最后匹配的组
替换整个字符串
3. 匹配URL中文件名
目的:从URL地址中提取文件名
表达式:s=s.replace(/(.*\/){0,}([^\.]+).*/ig,&$2&) ;
string s = &&;
s = s.replace(/(.*\/){0,}([^\.]+).*/ig, &$2&) ; 
阅读(...) 评论()

我要回帖

更多关于 阀门字母及数字含义 的文章

 

随机推荐