Javascript 正则表达式查找字母表中的5个连续字母(例如abcde、noprst)
我有包含5个字母的字符串。我想匹配那些包含字母表中连续字母的字母,例如: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
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;i console.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)$)/