Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式查找字母表中的5个连续字母(例如abcde、noprst)_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式查找字母表中的5个连续字母(例如abcde、noprst)

Javascript 正则表达式查找字母表中的5个连续字母(例如abcde、noprst),javascript,regex,Javascript,Regex,我有包含5个字母的字符串。我想匹配那些包含字母表中连续字母的字母,例如: abcde-返回匹配 nopqrs-返回匹配 cdefg-返回匹配 fghij-返回匹配 但是 abcef-不返回匹配项 abbcd-不返回匹配项 我可以编写所有组合,但正如您可以在Regex[A-Z]中编写一样,我认为一定有更好的方法。使用javascript的替代方法: 让string1='abcde' 设string2='fghiz' 函数字符(字符串){ 如果(string.length>5 | | typeof

我有包含5个字母的字符串。我想匹配那些包含字母表中连续字母的字母,例如:

abcde
-返回匹配

nopqrs
-返回匹配

cdefg
-返回匹配

fghij
-返回匹配

但是

abcef
-不返回匹配项

abbcd
-不返回匹配项


我可以编写所有组合,但正如您可以在Regex[A-Z]中编写一样,我认为一定有更好的方法。

使用javascript的替代方法:

让string1='abcde'
设string2='fghiz'
函数字符(字符串){
如果(string.length>5 | | typeof string!=“string”)抛出“[ERROR]not string或string大于5”
for(设i=0;iconsole.log('string2是连续的:'+conletters(string2))
如果您可以使用Python,此函数将字符串序列转换为数字字符,并检查它们是否是连续的(如果是,它们也是按字母顺序连续的):

产出:

match
match
match
no match
no match
no match

一个非常简单的替代方法是只使用:

函数是连续的(字符串){
常量结果='abcdefghijklmnopqrstuvwxyz'。包括(字符串);
日志(字符串、结果);
}
//真的
是连续的(“abcde”);
持续性('nopqrs');
是连续的('cdefg');
是连续的('fghij');
//假的
是连续的(“abcef”);

是连续的('abbcd')您绝对应该使用代码:

有些人在遇到问题时会想“我知道,我会使用正则表达式。”现在他们有两个问题

也就是说,在使用正则表达式时,您可以比测试所有组合做得更好。使用前瞻表达式,您基本上可以执行“and”操作。既然你知道你可以做的长度:

const myRegex = /(?=^(ab|bc)...$)(?=^.(ab|bc)..$)(?=^..(ab|bc).$)(?=^...(ab|bc)$)/
您需要将(ab | bc)替换为所有可能的两种组合


对于这种特殊情况,它实际上比测试所有可能性(因为只有22种可能性)更糟糕,但它使它更易于扩展到其他情况。

将它们转换为整数(ASCII码)并通过编程方式进行比较。您是指
nopqrst
而不是
noprst
(您缺少一个q)?是的KevBot,对不起:)
const myRegex = /(?=^(ab|bc)...$)(?=^.(ab|bc)..$)(?=^..(ab|bc).$)(?=^...(ab|bc)$)/