如何检查源路径是否有可用的正则表达式/通配符?
How to check if the source path has regex / wildcard available?
用户可以使用通配符或正则表达式提供任何路径。如果他们提供,我需要确定它不是完整的静态路径。
var sourcePath: Array(String) = Array("/user/Orders/201507{2[7-9],3[0-1]}*")
我正在编写下面的代码,我想我需要检查所有字符,例如 ?
{
^
等。
有没有更好的方法?
if (sourcePath.trim.toLowerCase().indexOf("*") > 0)
{
println("Source path has wildcard/regex")
}
else
{
println("it is a static path, having no wildcard or regex")
}
更正数组初始化和您执行的操作后,您的代码将按以下方式生成解决方案:
var sourcePath: Array(String) = Array("/user/Orders/201507{2[7-9],3[0-1]}*")
for(path <- sourcePath){
if( path.trim.toLowerCase().indexOf("*") > 0 ) {
println("source path has wildcard/regex")
}
else {
println("it is a static path, having no wildcard or regex")
}
}
输出:
source path has wildcard/regex
还有其他方法可以执行与上述相同的任务。下面提供了其中一些:
使用正则表达式:
import scala.util.matching.Regex
val pattern = new Regex("[*]") //the regex/wildcard you want to check
for(path <- sourcePath){
if( (pattern findAllIn path).mkString("").length > 0 ) {
println("Source path has wildcard/regex")
}
else {
println("it is a static path, having no wildcard or regex")
}
}
使用匹配():
for(path <- sourcePath){
if( path.matches(".*/*") ) {
//Here,'.*' is required syntax and '/' is an escape character in this case
println("Source Path has wildcard/regex")
}
else {
println("it is a static path, having no wildcard or regex")
}
}
如果您正在寻找更好的方法来执行此操作,字符串函数(优化)在大多数情况下比正则表达式执行得更好。因此,在这种情况下,您可以继续使用 indexOf() 或 matches()。
您还可以参考以下几种额外的方式。
Scala check if string contains no special chars
用户可以使用通配符或正则表达式提供任何路径。如果他们提供,我需要确定它不是完整的静态路径。
var sourcePath: Array(String) = Array("/user/Orders/201507{2[7-9],3[0-1]}*")
我正在编写下面的代码,我想我需要检查所有字符,例如 ?
{
^
等。
有没有更好的方法?
if (sourcePath.trim.toLowerCase().indexOf("*") > 0)
{
println("Source path has wildcard/regex")
}
else
{
println("it is a static path, having no wildcard or regex")
}
更正数组初始化和您执行的操作后,您的代码将按以下方式生成解决方案:
var sourcePath: Array(String) = Array("/user/Orders/201507{2[7-9],3[0-1]}*")
for(path <- sourcePath){
if( path.trim.toLowerCase().indexOf("*") > 0 ) {
println("source path has wildcard/regex")
}
else {
println("it is a static path, having no wildcard or regex")
}
}
输出:
source path has wildcard/regex
还有其他方法可以执行与上述相同的任务。下面提供了其中一些:
使用正则表达式:
import scala.util.matching.Regex
val pattern = new Regex("[*]") //the regex/wildcard you want to check
for(path <- sourcePath){
if( (pattern findAllIn path).mkString("").length > 0 ) {
println("Source path has wildcard/regex")
}
else {
println("it is a static path, having no wildcard or regex")
}
}
使用匹配():
for(path <- sourcePath){
if( path.matches(".*/*") ) {
//Here,'.*' is required syntax and '/' is an escape character in this case
println("Source Path has wildcard/regex")
}
else {
println("it is a static path, having no wildcard or regex")
}
}
如果您正在寻找更好的方法来执行此操作,字符串函数(优化)在大多数情况下比正则表达式执行得更好。因此,在这种情况下,您可以继续使用 indexOf() 或 matches()。
您还可以参考以下几种额外的方式。
Scala check if string contains no special chars