Lua 笔记11

1. 捕获用法 +1,空白捕获 ()  举例,

 

   注:与find返回的结果不一致。

2. 捕获 另一个好的示例,

 

   注:

    这个函数首先对字符串进行了制表符展开以移除其中所有的制表符,然后构造出一个用于匹 配所有 8 个字符序列的辅助模式,再利用这个模式在每 8 个字符后添加一个标记   (控制字 符\1 )。 接着,它将所有以此标记结尾的空格序列都替换为制表符。 最后,将剩下的标记删 除(即那些没有位于空格后的标记)。

 3. 运用模式开发注意:

  1. 如果目标字符串含有 模式字符。

  2. 模式匹配效率很高。但还需尽量使用精确的模式(不精确的模式比精确模式慢很多)。例子,

  模式’(.-)%$ ’ ,它用于获取字符串中第一个 $ 符号前的所有内容。 如果目标字 符串中有 $ 符号,那么这个模式工作很正常;但是,如果宇柯:串中没有 $ 符号,那么模式匹 配算法就会首先从字符串起始位置开始匹配,直至为了搜索 $ 符号而遍历完整个字符串。 当 到达字符串结尾时,这次从字符串起始位直开始的模式匹配就失败了。 之后,模式匹配算法 又从字符串的第二个位置开始第二次搜索,结果仍然是无法匹配这个模式。 这个匹配过程会在字符串的每个位置上进行一次,从而导致。O(n^2)的时间复杂度(此处拓展,模式匹配算法)。要解决这个问题,我们只需使用'^(.-)%$'将模式 锚定在字符串的开始位置即可。 这样,如果不能从起始位置开始找到匹配,搜索就会停止。

4. 用法瞻仰:

 

 运行结果:

原文地址:https://www.cnblogs.com/gaara-zhang/p/13212145.html