点字符 限定符 6种不同的元字符的用法 (点 字符)
本文目录导航:
限定符、点字符,6种不同的元字符的用法
POSIX规范制定了两种规范的正则表白式语法,一种是基本正则表白式,一种裁减正则表白式。
这两中正则表白式的元字符组成略有不同。
本节来学习基础正则表白式元字符。
基础正则表白式元字符 (1)限定符“*” 符号“*”用于婚配前导字符0次或屡次,详细示例如下: 以上示例中“*”符号之前是个别字符l,“*”符号就示意婚配l字符0次或屡次,字符串helo、hello、hellllllo都可以与hel*o婚配。
(2)点字符“.” 符号“.”用来婚配恣意除换行符“\n”外恣意的单个字符。
当正则表白式中产生“.”符号时,象征着该位置应有一个字符,详细示例如下: “.”只能婚配一个字符,因此上述字符串示意前两个字符是恣意字符,第3~5个字符是U73,最后一个字符也是恣意字符。
字符串MHU73、4JU73H等都可与..U73.婚配。
(3)行首定位符“^” 符号“^”用来婚配行首字符,示意行首字符是“^”前面那个字符。
例如罗列出/etc目录下以字符串“sys”扫尾的文件,可以经常使用如下命令: 留意: 虽然以上示例婚配的是以字符串“sys”扫尾的内容,但读者应了解为婚配以字符“s”扫尾,第二、第三个字符依次为“y”和“s”的行,这种了解模式更合乎正则表白式的思想,。
这种思想在学习正则表白式时十分关键,读者应熟练把握。
(4)行尾定位符“$” 行尾定位符“$”用来婚配文本行开端的字符,与“^”符号的作用正相反。
例如查找/etc目录下以conf开头的文件,可以经常使用如下命令。
雷同,读者无了解行尾定位符的时刻也应该从字符的角度去了解,即“conf$”婚配的是以“conf”以字符“f”开头,同时倒数第2~4个字符依次为“n”、“o”、“c”的文本行。
(5)字符组“[]” “[]”符号的配置比拟不凡,它是用来指定一个字符汇合的,其基本语法如下: 其中a、b和c示意恣意单个字符,只需某个字符串在方括号所在的位置产生了方括号中的恣意一个字符,就能满足婚配规定。
另外,关于延续的数字或字母可以经常使用符号“-”来示意一个范畴,例如[a-z],示意婚配到a到z中的恣意一个字母。
上方经过检查/etc目录下以rc扫尾,并且rc前面紧跟一个数字的文件有哪些来展示“[]”符号的经常使用,检查的命令详细如下所示: 由输入结果可知,合乎规定的文件一共有7个。
留意:元字符“*”或“.”位于“[]”符号之中,便仅示意一个个别的字符,不再具备不凡意义。
(6)扫除型字符组“[^]” “[^]”示意不婚配其中列出的恣意字符,其语法格局如下所示。
它的用法与“[]”符号相反,此处不再赘述。
作用域限定符作用域限定符
在不同的作用域内,变量可以经常使用相反的称号,但这或者造成混杂。
当部分变量与全局变量具备相反的名字时,若要访问全局变量,C++提供了一种处置打算,即使用作用域限定符(::)。
作用域限定符是一种不凡符号,在C++中用于辨别具备相反称号的全局变量和部分变量。
当两者同名时,经过在部分变量名前减少作用域限定符和作用域的标识符,可以明白指定访问的是全局变量还是部分变量。
例如,假定咱们有一个全局变量和一个同名的部分变量:cppvoid function() {int globalVariable = 10; // 全局变量int localVariable = 20; // 部分变量// 访问全局变量int result = globalVariable + localVariable;// 经常使用作用域限定符访问部分变量int localVariable = 30;int resultWithScope = ::localVariable + globalVariable;}在这个例子中,咱们首先申明了一个全局变量`globalVariable`和一个部分变量`localVariable`。
在`function()`函数中,咱们计算了`globalVariable`与`localVariable`的和,并将结果存储在变量`result`中。
接着,咱们再次申明了一个名为`localVariable`的部分变量,并经常使用作用域限定符`::`来访问它,并将其与全局变量`globalVariable`相加,将结果存储在变量`resultWithScope`中。
经过经常使用作用域限定符,咱们可以在同名的全局变量和部分变量之间启动辨别,确保程序的正确性和可读性。
这种机制关于防止变量称号抵触、确保代码的明晰性以及提高代码的保养性具备关键作用。
a=1234;printf("a=%2d\n",a);为什么还是显示a=1234
限定符的最短状况在须要精度的时刻起作用,而1234是自身的数值,所以所有输入。
如printf(%.2f, 1.2345); 就进去1.23。