- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用 Regex.fromLiteral(".*")
创建了一个非常简单的匹配所有正则表达式.
根据documentation :“返回指定文字字符串的文字正则表达式。”
但是我真的不明白“对于指定的文字字符串”应该是什么意思。
考虑这个例子:
fun main(args: Array<String>) {
val regex1 = ".*".toRegex()
val regex2 = Regex.fromLiteral(".*")
println("regex1 matches abc: " + regex1.matches("abc"))
println("regex2 matches abc: " + regex2.matches("abc"))
println("regex2 matches .* : " + regex2.matches(".*"))
}
regex1 matches abc: true
regex2 matches abc: false
regex2 matches .* : true
Regex.fromLiteral()
和
String.toRegex()
行为完全不同(我已经尝试了几十种不同的参数
regex2.matches()
- 唯一返回 true 的是
.*
)
Regex.fromLiteral()
创建的正则表达式总是只匹配创建它的确切字符串?
最佳答案
是的,它确实创建了一个与 String
中的文字字符匹配的正则表达式。 .当您尝试匹配将在正则表达式中解释的符号时,这很方便 - 您不必以这种方式转义它们。
例如,如果您要查找包含 .*[](1)?[2]
的字符串,您可以执行以下操作:
val regex = Regex.fromLiteral(".*[](1)?[2]")
regex.containsMatchIn("foo") // false
regex.containsMatchIn("abc.*[](1)?[2]abc") // true
Regex
做任何您能做的事情。只是普通
String
方法也是。
val literal = ".*[](1)?[2]"
literal == "foo" // equality checks
literal in "abc.*[](1)?[2]abc" // containment checks
"some string".replace(literal, "new") // replacements
Regex
实例作为参数,所以
fromLiteral
在这些情况下可以使用方法。对于某些用例,对不同输入的这些不同操作的性能也可能很有趣。
关于regex - 使用 Regex.fromLiteral() 创建的 Regex 到底匹配什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45035672/
这对你们来说可能很简单,但由于我是java新手,所以我想知道实际上什么是 接下来的部分会发生什么? if (args.length > 0) { file = args[0]; } publi
在我的 View Controller 中,我将 UITapGestureRecognizer 添加到 self.view。我在 self.view 之上添加了一个小 View 。当我点击小 View
我今天尝试从 Obj-C 开始并转到 Swift,我正在阅读文档。我试图在 Swift 中创建一个简单的 IBOutlet,但它不断给我这些错误。 View Controller 没有初始化器 req
我正在尝试使用 VIM 完成(字典和当前缓冲区),但我遇到了问题?和 !在方法名称的末尾。我能以某种方式向 vim 解释方法名称(基本上是单词)最后只能有它,而且只有一个,即 method_name
我是一名优秀的程序员,十分优秀!