正则表达式通配符匹配

拉杜·穆塞(Radu Murzea):

我列出了大约12万个英语单词(基本上是该语言中的每个单词)。

我需要一个正则表达式,允许使用通配符aka *来搜索这些单词?

一些例子:

  • 如果用户搜索m?st*,它会匹配,例如mastermistermistery
  • 如果用户搜索*ind(以结尾的任何单词ind),则它将匹配windbindblindgrind

现在,大多数用户(尤其是对正则表达式不熟悉的用户)都知道,这?正好是1个字符*的替代,而0、1个或多个字符的替代。我绝对想基于此构建我的搜索功能。

我的问题是:如何将用户输入的内容(m?st*例如)转换为正则表达式?

我在网上搜索(显然包括该网站),而我所能找到的只是教程,这些教程试图教给我太多或有些相似的问题,但不足以提供对我自己问题的答案。

我只能弄清楚我必须替换?.如此m?st*成为m.st*但是,我不知道该*什么替换

任何帮助将不胜感激。谢谢。

PS:我对正则表达式完全陌生。我知道它们有多强大,但是我也知道它们可能很难学习。所以我只是从来没有花时间去做...

忽略:

除非您想要一些有趣的行为,否则我建议您使用\w而不是.

. 匹配空格和其他非单词符号,您可能不希望这样做。

因此,我将代替?\w和替换*\w*

另外,如果您要*匹配至少一个字符,请替换为\w+这意味着ben*将匹配bendbending而不是ben-这是你的,只是取决于你的需求是什么。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章