javascript中通配符搜索的正则表达式

时间:2015-03-04 06:47:20

标签: javascript regex filter wildcard

我有一个字符串 SEARCH0000123456 SEARCH000096834 ,我想在下面使用通配符执行*

  1. SEARC * 2 * 6 - 应与SEARCH0000123456匹配
  2. SEARC * 9 * - 应与SEARCH000096834匹配
  3. * 123 * - 应与SEARCH0000123456匹配
  4. * 834 - 应与SEARCH000096834匹配
  5. 所以,*是通配符,应匹配任何字符。

    我们是否可以使用javascript中的正则表达式实现此目的

    由于

2 个答案:

答案 0 :(得分:3)

只需将*替换为.*即可匹配正则表达式中的零个或多个字符。或.+匹配一个或多个字符。并且还添加了锚点,因为SEARC*2*6 glob模式只有在它以SEARC开头时才匹配字符串,所以我们需要在这里使用起始锚^

SEARC*2*6   - ^SEARC.*2.*6$
SEARC*9*    - ^SEARC.*9.*
*123*       - .*123.*
*834        - .*834$
SE.ARC*2*6  - ^SE\.ARC.*2.*6$
?E.ARC*2*6  - ^.E\.ARC.*2.*6$

答案 1 :(得分:2)

Mozilla对JS正则表达式有一个很好的介绍:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

您只需使用.*匹配0个或多个字符。

您可能希望.*?与非贪婪匹配(例如,在{345}的第一个实例中停靠,例如.*?345,而不是最后一个。 `