gpt4 book ai didi

java - 检查两个字符串是否与字母、数字和特殊字符匹配

转载 作者:太空宇宙 更新时间:2023-11-04 09:12:48 26 4
gpt4 key购买 nike

您将如何编写一个接受两个字符串并在它们匹配时返回 true 的函数(不使用正则表达式)。

约束条件如下:

  • 字符串 1(要匹配的文本)将包含字母和数字。
  • 字符串 2,模式,将是字母、数字、.*,其中 . 表示将考虑字母或数字作为匹配项,* 表示前一个字符重复 0 次或多次。

例如:

Text: Facebook
Pattern: F.cebo*k
returns True

最佳答案

对此并不感到特别自豪(@JoranBeasley 的回答是最好的),但这将在没有正则表达式的情况下(似乎)起作用:

def Matcher(pattern, text):
comp = zip(pattern, text)
for i, vals in enumerate(comp):
if vals[0] != vals[1]:
if vals[0] == '.' and vals[1].isalnum():
continue
elif vals[0] == '*' and vals[1] == comp[i-1][0]:
continue
else:
return False
return True

print 'F.cebo*k -> Facebook'
print Matcher('F.cebo*k', 'Facebook')

print 'St.c.koverflow -> Stackoverflow'
print Matcher('St.c.koverflow', 'Stackoverflow')

# And for nostalgia...
print 'St.ckoverfl*w -> Stackoverfllw'
print Matcher('St.ckoverfl*w', 'Stackoverfllw')

我确定它充满了错误(比如字符串以 * 开头),但我的代码通常是错误的。

关于java - 检查两个字符串是否与字母、数字和特殊字符匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13144590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com