(^ap*e$)没有't匹配'苹果'.为什么?

(^ap*e$) doesn't match 'apple'. why?

本文关键字:苹果 为什么 匹配 没有 ap      更新时间:2023-09-26

我在应用程序中使用正则表达式,我想测试它的不同组合。如何指定以"a"开头,以"e"结尾?

*与前一个字符的0个或多个匹配。因此,您的模式指定将有0个或多个p s。

它与aeapeappppppppppppppppppppppppppppppppppppppppppppppe匹配,但与苹果不匹配。

"匹配任何字符"的典型构造是.*(匹配任何字符零次或多次),您的模式是:

^a.*e$

如果在星号*:之前添加.,则正则表达式有效

(^ap.*e$)

然而,对于您的需求,不需要p,所以这将进行

(^a.*e$)

您可以如下解释这个正则表达式(请参阅此链接)

  1. ^断言字符串开头的位置
  2. a从字面上匹配字符a(区分大小写)
  3. .*匹配任何字符(换行符除外)。量词*在零次和无限次之间匹配,尽可能多次,根据需要反馈
  4. e与字符e完全匹配(区分大小写)
  5. $断言字符串末尾的位置

您可以使用此

(^ap.*e$)

您可以尝试在此网站上测试您的REGEX。

http://www.regular-expressions.info/javascriptexample.html

如何指定以'a'开头,以'e'结尾?

如果你正在寻找一个完整的单词,就像这样:

'ba'w+e

您可能希望使用'b锚点来匹配单词边界,使用g修饰符来执行全局匹配。

var result = "apple orange apple banana carrot apple".match(/('ba'w+e)+/g);
alert(result);

试试这个^a(.*)e$。以"a"开头的模式以"e"结尾