Javascript (^ap*e$)不';t匹配';苹果公司;。为什么?
我在我的应用程序中使用正则表达式,我想测试它的不同组合。如何指定以“a”开头,以“e”结尾?Javascript (^ap*e$)不';t匹配';苹果公司;。为什么?,javascript,regex,Javascript,Regex,我在我的应用程序中使用正则表达式,我想测试它的不同组合。如何指定以“a”开头,以“e”结尾?*与前面的0个或多个字符匹配。因此,您的模式指定将有0个或更多的ps 它与ae、ape和appppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
*
与前面的0个或多个字符匹配。因此,您的模式指定将有0个或更多的p
s
它与ae
、ape
和apppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
“匹配任何内容”的典型结构是*
(将任何字符匹配零次或多次),您的模式是:
^a.*e$
如果在星号*
之前添加
,则正则表达式可以工作:
(^ap.*e$)
但是,对于您的需求,不需要p
,所以这样就可以了
(^a.*e$)
您可以按如下方式解释此正则表达式(请参见此)
^
在字符串开头断言位置
a
按字面意思匹配字符a(区分大小写)
*
匹配任何字符(换行符除外)。量词*
在零次和无限次之间匹配,尽可能多地匹配,根据需要返回
e
逐字匹配字符e(区分大小写)
$
在字符串末尾断言位置
试试这个^a(.*)e$
。以“a”开头以“e”结尾的模式可以使用
(^ap.*e$)
你可以尝试在这个网站上测试你的正则表达式
如何指定以'a'
开头,以'e'
结尾
如果你在寻找一个完整的单词,比如:
\ba\w+e
您可能希望使用\b
锚来匹配g
修饰符以执行全局匹配
var result = "apple orange apple banana carrot apple".match(/(\ba\w+e)+/g);
alert(result);
使用@Tushar why[\s\s]
而不是
?为什么每个人都建议匹配任何字符?我认为需要的是\w*
:^ap*\w*e$
只允许字母数字。@Stribizev为什么不允许?他们所说的问题是以“a”开头,以“e”结尾。
@123:与“apple”不匹配-绝对不是任何字符。无用的括号。括号用于分组。更清晰,就这样。我知道,如果你使用它,这不是一种罪过,但对于新手来说,他们可能会误导你。