正则表达式搜索-换个字

时间:2018-11-23 11:06:34

标签: regex

我有搜索要求。 例如,我要搜索大容量的单词“ Microsoft帐户”。 在大文本中,它可以定义为 “ Microsoft_Account”或“ Microsoft-Account”。 我的搜索逻辑也应识别以上单词。 有什么方法可以使用正则表达式来实现? (可以通过拆分和循环搜索来完成,但如果有使用正则表达式的解决方案,那将很棒)

1 个答案:

答案 0 :(得分:2)

如果您只需要regEx,则为:a[ -_]b

ab是您搜索的两个部分


如果您需要算法:

您需要先使用正则表达式分隔符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"