lua拆分字符串实现及lua源码查看

lua字符串拆分实现

--字符串分割
function splitStr(content, token)
    if not content or not token then return end
    local strArray = {}
    local i = 1
    local contentLen = string.len(content)
    while true do
        -- true是用来避开string.find函数对特殊字符检查 特殊字符 "^$*+?.([%-"
        local beginPos, endPos = string.find(content, token, 1, true)
        if not beginPos then
            strArray[i] = string.sub(content, 1, contentLen)
            break
        end
        strArray[i] = string.sub(content, 1, beginPos-1)
        content = string.sub(content, endPos+1, contentLen)
        contentLen = contentLen - endPos
        i = i + 1
    end
    return strArray
end

开始实现的时候,遇到一个问题,如果用 "++" 这样的特殊字符作为token发现,string.find有问题(遇到"+"也会返回,而不是遇到"++")

在网上查了一下,也没查到什么,既然有lua的源代码为什么不去看下,要检讨啊

后面查看lua 源代码的 lstrlib.c文件(这个是 lua string库的源代码), 发现string.find代码中有特殊字符检查,对特殊字符进行处理,所以导致了这个错误,

不过string.find函数可以传入 第4个参数 传入true  就能绕过特殊字符检查。所以就没问题了。

如果想查看lua的源代码,查看 l*lib.c 文件。 如: ltablib.c 就是 table的库代码  liolib.c 就是io文件操作的库代码

时间: 2024-08-24 01:01:37

lua拆分字符串实现及lua源码查看的相关文章

android篇-如何做一个简单的安卓源码查看器

1,网页源码查看器: Httpurlconnection:用于发送或接收数据 Mainactivity篇: import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import android.os.Bundle; import android.os.Handler; import android.os.Lo

.NET Framework源码查看与调试

1. 直接下载.NET Framework源代码(下载地址),然后用Visual Studio打开查看. 2. 在线查看,网址:http://referencesource.microsoft.com/ . Refer: A new look for .NET Reference Source http://blogs.msdn.com/b/dotnet/archive/2014/02/24/a-new-look-for-net-reference-source.aspx Configure V

网页源码查看器

网页源码查看器 代码实现步骤 [1]搭建UI [2]httpurlconnection类基本用法 @OnClick(R.id.btn) public void onViewClicked() { final String url = mEt.getText().toString().trim(); if (TextUtils.isEmpty(url)) { Toast.makeText(this, "网址不能为空" + url, Toast.LENGTH_SHORT).show();

关于cocos2dx lua中的clone函数的源码解读

cocos2dx的clone函数,是深拷贝,完全的拷贝,这段代码内容不多,不过第一次看还是有点晕,我把解读记下来分享一下. 源码解读: function clone(object)--clone函数 local lookup_table = {}--新建table用于记录 local function _copy(object)--_copy(object)函数用于实现复制 if type(object) ~= "table" then return object ---如果内容不是t

php 判断字符串是否包含pk10源码修复

1.strpos()pk10源码修复(企 娥:217 1793 408)<?php$attach='omr/online/php/img/news/';//注意要用 !==//查找的字符串在第一个位置返回是0if (strpos($attach, 'omr/online') !== false) {//如果包含omr/online}?> 2.strstr() 定义和用法 strstr() 函数搜索一个字符串在另一个字符串中的第一次出现. 该函数返回字符串的其余部分(从匹配点).如果未找到所搜索

安卓http源码查看器详解

1.效果图如下,输入网址就可以看到该网址的源码 2.项目工程文件如右图所示: 3.首先,布局文件如下,我采用的是线性布局 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent"

Android(java)学习笔记203:网页源码查看器

1.项目框架图: 2.首先是布局文件activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="m

Android-support-v4源码查看

查看ViewPager的源码时候,提示 android-support-v4是私有类库,不允许添加源码.. 解决方法: Android SDK在extras目录中同样提供了support包的源码,当然前提是你使用Android SDK Manager下载过了Android Support Library.当我们使用到support包的时候,它一般都会静静的躺在libs目录里,这个时候我们只需要在同一个目录下建一个 properties文件,名字跟你所用的support jar包相同,即andro

黎活明8天快速掌握android视频教程--24_网络通信之网页源码查看器

1 该项目的主要功能就是从将后台的html网页在Android的界面上显示出来 后台就是建立一个java web工程在工程尚建立一个html或者jsp文件就可以了,这里主要看Android客户端的程序 xml文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" andr