`
chenpeilei2003
  • 浏览: 191372 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

为什么string.find()无法查找点号

    博客分类:
  • Lua
阅读更多
fn = 'tip.gif'
string.find(fn,'.')返回始终是1 , 什么原因?
分享到:
评论
2 楼 goreycn 2011-02-22  
看到了,顺手查了一下.

因为string.find()的第二个参数是正则,所以现在的结果是1.

想查字符的"."的话, 要Escape一下,就是%.

正确的写法是 string.find(fn,'%.')


参考:http://www.lua.org/manual/5.1/manual.html#pdf-string.find

%x: (where x is any non-alphanumeric character) represents the character x. This is the standard way to escape the magic characters. Any punctuation character (even the non magic) can be preceded by a '%' when used to represent itself in a pattern.

magic characters:
   ^$()%.[]*+-?)
1 楼 chenpeilei2003 2010-09-07  
为什么  ?

相关推荐

    Lua教程(十四):字符串库详解

    `string.gsub`函数用于执行全局字符串替换,即在目标字符串中查找所有匹配指定模式的子串,并将其替换为指定的新字符串。该函数可以接受一个可选的第四个参数,用来限制替换发生的次数。`string.gsub`函数还返回替换...

    Python 使用Beautiful Soup 爬虫教程.pdf

    2. `soup.find('tag')`:查找第一个匹配的`<tag>`标签。 3. `soup.find_all('tag')`:查找所有`<tag>`标签。 4. `soup.find(id='some_id')`:根据ID查找元素。 5. `soup.find_all(class_='some_class')`:根据类名...

    抓取网页中的邮箱地址

    - `\.`:匹配点号,因为点号在正则表达式中是特殊字符,所以需要用反斜杠转义。 - `\w+`:匹配字母、数字或下划线,至少出现一次。 在Java中,我们可以这样使用正则表达式来查找邮箱地址: ```java import java....

    Python程序设计:正则表达式检索与替换.pptx

    - `re.findall(pattern, string)`:返回所有匹配项的列表,即使没有匹配项也会返回空列表。 - `re.sub(pattern, repl, string)`:用`repl`替换`string`中所有匹配`pattern`的部分。 对于匹配对象,可以调用以下方法...

    VC.Net 解析文件名、扩展名及文件路径源码.rar

    解析文件名和扩展名,我们可以使用`std::string`的成员函数,如`find_last_of()`和`substr()`。 以下是一个简单的示例,演示如何获取文件名、扩展名和路径: ```cpp #include #include <string> void ...

    python之常用正则表达式.pdf

    - **函数定义**:`findall(pattern, string, flags=0)` - **功能**:查找所有匹配项并返回一个列表。 - **参数**: - `pattern`:需要匹配的正则表达式。 - `string`:待匹配的字符串。 - `flags`:可选标志位...

    Python正则表达式基础

    1. .(点号):匹配除换行符外的任何单个字符。 2. \d:等价于[0-9],匹配任意数字。 3. \D:匹配非数字字符。 4. \s:匹配任何空白字符,包括空格、制表符、换页符等。 5. \S:匹配非空白字符。 6. \w:匹配字母、...

    JAVA正则表达式--Pattern和Matcher

    - 功能:`find()` 在整个输入字符串中查找下一个匹配项;`lookingAt()` 则是从输入字符串的开头开始尝试匹配整个模式。 - 示例代码: ```java while (matcher.find()) { System.out.println("Found match at ...

    JAVA正则表达式实例教程.pdf

    - `m.find()`:查找字符串中任何位置的匹配。 - `Matcher`类还提供了其他方法: - `groupcount()`:返回模式中的捕获组数量。 - `replaceAll(String replacement)`:替换所有匹配的部分。 - `replaceFirst...

    java正则表达式解析

    3. **`Matcher.find()`**:查找输入序列中的下一个匹配项。 4. **`Matcher.matches()`**:检查整个输入序列是否匹配该模式。 5. **`Matcher.group()`**:获取匹配的子字符串。 6. **`String.replaceAll()`** 和 **`...

    python正则表达式

    4. **全局匹配**:`re.findall()`和`re.finditer()`用于查找所有匹配项。`findall()`返回一个包含所有匹配字符串的列表,而`finditer()`返回一个迭代器,每个元素是匹配对象。例如: ```python matches = re.find...

    python正则用法.docx

    - `re.sub(pattern, repl, string)`: 将字符串中所有匹配的部分替换为指定的字符串。 例如: ```python import re string = 'Hello, world!' pattern = 'world' match = re.search(pattern, string) if match: ...

    Python正则表达式re模块简明笔记[收集].pdf

    matches = pattern.findall('some string with 123 and 456') ``` 这将返回所有匹配的数字串。 5. **finditer()**: 类似于`findall()`,但它返回一个迭代器,每次迭代返回一个`Match`对象,包含每个匹配项的信息...

    正则表达式

    正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和提取字符串模式。在Java编程语言中,正则表达式被广泛应用于数据验证、文本分析和数据提取等场景。以下是对正则表达式的详细解释: 一、正则表达式基础...

    基于java实现的测试正则表达式源代码

    - `find()`:查找输入字符串中与模式匹配的子串,返回true表示找到,可以配合`start()`和`end()`获取子串范围。 - `group(int group)`:返回指定组的匹配子串,`group(0)`为整个匹配结果,`group(1)`等为分组内的...

    c++实现的将ip地址转换成四个int型,便于处理

    1. 字符串操作:使用`std::string::find`查找点的位置,`std::string::substr`提取子字符串。 2. 整数转换:可以使用`std::stoi`函数将字符串转换为整数,但需要注意错误处理,因为非数字字符会导致异常。 以下是一...

    JAVA 正则表达式测试器

    - `Matcher.find()`: 查找输入字符串中与正则表达式匹配的部分,返回true表示找到至少一次匹配。 - `Matcher.group()`: 返回上一次匹配成功的子字符串。 - `Matcher.replaceAll(String replacement)`: 使用给定的...

    正则表达式系统教程

    正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串。在编程语言中,它被广泛应用于数据验证、文本搜索和提取、文本处理等场景。本教程将全面解析正则表达式系统,帮助您提升在开发中的效率。 ...

Global site tag (gtag.js) - Google Analytics