如果我有一个名为“ text”的字符串和一个正则表达式(为方便起见,称为“ regex”),我想对它进行检查,我应该使用:
regex.containsMatchIn(text)
或者我应该使用:
text.contains(regex)
两者似乎都成功了,但是我不确定与此有关的最佳实践。
答案 0 :(得分:2)
使用任何一种使您的代码更易于阅读。它们之间没有区别,因为text.contains(regex)
调用Strings.kt
source code的regex.containsMatchIn(text)
:
@kotlin.internal.InlineOnly
public inline operator fun CharSequence.contains(regex: Regex): Boolean = regex.containsMatchIn(this)
答案 1 :(得分:0)
Kotlin文档说:
包含
如果此char序列包含指定的其他字符序列作为子字符串,则返回true。
包含匹配项
指示正则表达式是否可以在指定的输入中找到至少一个匹配项。
看起来两者都差不多做同一件事,因此从功能上来说,使用哪个都没关系。
但是,由于您正在使用正则表达式,因此我觉得使用containsMatchIn
更合适,因为它是正则表达式库的一部分,专门用于此目的。
contains
不仅可以用于正则表达式,例如用于查找“流”是否为“溢出”的子字符串。因此,如果我们很挑剔的话,将其用于正则表达式可能不太合适。