我有搜索要求。 例如,我要搜索大容量的单词“ Microsoft帐户”。 在大文本中,它可以定义为 “ Microsoft_Account”或“ Microsoft-Account”。 我的搜索逻辑也应识别以上单词。 有什么方法可以使用正则表达式来实现? (可以通过拆分和循环搜索来完成,但如果有使用正则表达式的解决方案,那将很棒)
答案 0 :(得分:2)
如果您只需要regEx,则为:a[ -_]b
a
和b
是您搜索的两个部分
如果您需要算法:
您需要先使用正则表达式分隔符yourString.split(regex)
分割搜索词(在许多语言中为[ -_]
),以允许使用三个不同的字符。
在许多cas中,split
返回一个字符串表。因此,您必须查看表以重新创建正则表达式。
算法
str = your_search_string
tab_string = str.split("[ -_]")
res = ""
foreach part in tab_string
res = res + part + "[ -_]"
endForeach
res = res[0 length-5] //to remove "[ -_]" at the end
使用这种小算法,您将拥有自己的示例:
str = "Microsoft Account"
tab_string = ["Microsoft", "Account"]
res = ""
forEach
| res = "Microsoft[ -_]"
| res = "Microsoft[ -_]Account[ -_]"
EndforEach
res = "Microsoft[ -_]Account"