我有一个JavaScript应用程序,该应用程序的字符串包括一个字符串,这些字符串需要与给定的模式进行匹配。例如,我有字符串ABCDEFGHI
和模式CDE
,因此每次CDE
出现在字符串中都是匹配项。到目前为止,使用includes()
函数效果很好。
但是字符串中的某些字符充当其他字符的占位符。例如,字母Z
可以解析为C
或 D
,因此,如果搜索字符串为ABZDEFGHI
,则也应与模式CDE
因为Z
可以解析为C
。
我不知道如何在不对每个可能的组合进行暴力破解的情况下解决这个问题。任何想法都受到高度赞赏。谢谢!
答案 0 :(得分:0)
如果您想使用弦乐演奏,可以从这里开始:
$totalString= "ABCDEFGHIand";
$find="CDE";
$numChar= $find.length;
for ( $i=0; $i< ( $totalString.length - $find.length );$i++ ) {
$string= $totalString.substring( $i, $i+ $numChar);
$found=false;
for ( $j=0; $j < $string.length; $j++) {
if( $string[$j] != $find[$j] && $string[$j] !== "Z" ) {
$found=true;
break;
}
}
if( ! $found ) {
console.log($string);
}
}