ruby中带“!"和不带"!"的方法的最大的区别就是带”!"的会改变调用对象本身了。比方说str.gsub(/a/, 'b'),不会改变str本身,只会返回一个新的str。而str.gsub!(/a/, 'b')就会把str本身给改了。
但是gsub和gsub!还有另外一个不同点就是,gsub不管怎么样都会返回一个新的字符串,而gsub!只有在有字符被替换的情况下才会返回一个新的字符串,假如说没有任何字符被替换,gsub!只会返回nil.
example:
'abc'.gsub(/a/, 'b') #返回'bbc'
'abc'.gsub!(/a/, 'b') #返回'bbc'
'abc'.gsub(/d/,'a') #返回'abc'
'abc'.gsub!(/d/, 'a') #返回nil
分享到:
相关推荐
在Ruby中,有许多实用的内置函数和方法,这些工具极大地提升了开发者的效率。在这个主题下,我们将深入探讨Ruby的一些关键函数和实例,以及如何在实际编程中应用它们。 首先,我们关注的是"使用Ruby语言实现自动...
Ruby中的数组(Array)和哈希(Hash)有什么区别?请说明在Ruby中数组和哈希的不同特点。 **数组**是有序的元素集合,可以通过索引访问;**哈希**是键值对的无序集合,通过键来访问对应的值。 **示例**: ```ruby...
布尔值用于表示逻辑真和逻辑假,Ruby中有两个预定义的布尔值:`true` 和 `false`。 - **布尔操作**:支持逻辑与(`&&`)、逻辑或(`||`)、逻辑非(`!`)等运算。 #### Nil `nil` 是一种特殊类型的对象,表示没有任何值...
在Ruby中,函数定义使用`def`关键字: ```ruby def hello(programmer) puts "Hello #{programmer}" end hello('Brian') ``` 这个例子定义了一个名为`hello`的函数,它接受一个参数`programmer`,并在控制台上输出...
在Ruby语言中,正则表达式不仅可以用于搜索和验证字符串,而且还可以执行复杂的文本处理,如查找、替换和分割字符串等操作。通过学习Ruby中的正则表达式,可以有效地处理文本数据,是Ruby学习进阶过程中的一个重要...
正则表达式在Ruby on Rails中用于模式匹配和文本处理,以下是一些常用的正则表达式符号: - `^`: 表示字符串的开始。 - `$`: 表示字符串的结束。 - `.`: 匹配任何单个字符。 - `(a|b)`: 表示a或b。 - `()`: 表示一个...
例如,通过对比`gsub`和`tr`方法替换字符串中的特定字符,我们可以发现`tr`方法在效率上优于`gsub`,这对于大量处理字符串的场景尤其重要。在上述例子中,`tr`方法的执行时间大约是`gsub`的四分之一,因此在需要频繁...
Ruby中的正则表达式是强大的文本处理工具,用于在字符串中进行模式匹配、搜索和替换。它们由一系列特殊字符和语法组成,使得开发者能够高效地处理文本数据。 首先,正则表达式通常由两个斜杠 `/` 包围,例如 `/...
9. 模块和类:Ruby中的Module和Class用于实现面向对象编程,Module用于封装代码,提供命名空间和混合(mixin)功能,Class用于定义对象的类型。 10. 异常处理:Ruby的Exception类及其子类用于处理程序运行中的错误...
9. **字符串和正则表达式**:Ruby提供了丰富的字符串和正则表达式操作,如`gsub`替换字符串,`match`和`scan`处理正则匹配。 10. **异步编程与并发**:Ruby通过`Thread`类支持多线程,`fiber`则提供轻量级的协程。`...
在Ruby和Ruby on Rails开发中,JSON(JavaScript Object Notation)是一种常见的数据交换格式,用于在客户端和服务器之间传输数据。本教程将详细介绍如何在Ruby和Ruby on Rails中解析JSON格式的数据,以及如何确保...
在Ruby中,`gsub`方法全局替换(global substitute)所有匹配到的子串,而`sub`方法只替换第一个匹配到的子串。这些方法都可以接受一个正则表达式作为第一个参数,用来指定要匹配的模式,第二个参数可以是新的字符串...
Ruby是一种面向对象的脚本语言,以其简洁、优雅的语法和强大的元编程能力著称。在Ruby社区中,开发者经常通过编写库或扩展来增强语言的功能。"Finishing Moves"是一个这样的扩展,它向Ruby的核心类添加了一些实用...
例如,在Ruby中,`gsub`是一个全局替换方法,用于在一个字符串中查找匹配正则表达式的部分,并将其替换为另一个字符串。它不是专门用于获取子域的,但可以用来处理包含子域信息的数据。在描述中提到的"获取子域的...
Ruby的`gsub`函数可以用于查找和替换字符串中的模式,而`hiragana`、`katakana`等库可以帮助进行假名转换。如果项目使用了Swift,那么可能有一个接口或者桥接头文件,允许Ruby和Swift代码之间进行通信。 在实际应用...
在Ruby中使用正则表达式是非常直观和简便的。Ruby的正则表达式是对象,可以被创建并赋予变量,也可以作为对象进行方法调用,实现复杂的功能。Ruby中正则表达式的模式通常在两个斜线(/pattern/)之间编写。例如,一...
4. **Regexp**:正则表达式在 Ruby 中非常强大,支持多种匹配模式和捕获组。`match`, `=~` 和 `/pattern/` 是常用的正则表达式操作。 5. **Array** 和 **Hash**:数组是有序元素集合,可以使用索引访问;哈希则是一...
字符串处理是编程竞赛中常见的任务,Ruby的字符串类提供了许多实用的方法,如`gsub`用于替换子串,`split`用于分割字符串,以及`strip`、`chomp`等用于去除空白字符。 5. **排序与搜索** AtCoder的问题经常涉及到...
- 在Ruby中,可以通过特殊的百分比符号`%`语法来创建正则表达式的对象。 - **示例**: `/%/` 或 `/%r{pattern}/` - 这种方式提供了更简洁的方式来定义正则表达式。 #### 正则表达式的模式与匹配 - 正则表达式的...
Ruby中的字符串操作非常灵活,提供了丰富的函数和方法来处理字符串内容。 1. **字符串创建与转义**: - 单引号字符串('...')不解析转义字符,例如'\n'不会换行,而'\''用于插入单引号自身。 - 双引号字符串("......