下面这个正则表示和这几个字符串是否匹配?为什么?

表达式 /Java(?! Script)[A-Z]\w*/
有下面几个字符串:
"JavaBeans"
"Javanese"
"Javascript"
"Javascripter"

阅读 3.5k
1 个回答

只有"JavaBeans"是匹配的。

首先,观察这个正则表达式:

  • (?!pattern)这个表达式匹配不处于匹配pattern的字符串的起始点的搜索字符串。例如,"Java (?! Script)" 匹配"Java script"中的 "Java",但不匹配"Java Script"中的"Java"。

  • [A-Z]查找任何从大写 A 到大写 Z 的字符。

  • \w查找单词字符。

  • n*匹配任何包含零个或多个 n 的字符串。

对于"JavaBeans"由于不包含" Script"(前面有空格),Java后面紧跟着大写字母开始的Beans,所以是可以匹配的。

对于"Javanese""Javascript""Javascripter",由于Java后面没有大写字母开始的单词,所以不匹配。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进