为了账号安全,请及时绑定邮箱和手机立即绑定

如何将整条字符串与正则表达式匹配?

如何将整条字符串与正则表达式匹配?

月关宝盒 2019-06-18 15:35:40
如何将整条字符串与正则表达式匹配?我需要一个正则表达式,它只会找到整个字符串与我的查询匹配的匹配项。例如,如果我搜索名为“红色十月”的电影,我只想匹配那个确切的标题(大小写不敏感),而不匹配像“红色十月的狩猎”这样的标题。不太确定我知道怎么做。有人知道吗?谢谢!
查看完整描述

3 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

尝试以下正则表达式:

^Red October$

默认情况下,正则表达式区分大小写。这个^标记匹配文本的开始,并且$最后。


查看完整回答
反对 回复 2019-06-18
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

一般情况下,在默认设置下,^$锚是确保正则表达式匹配整个字符串的好方法。

不过,有几个注意事项:

如果在regex中有替换,请确保将regex封装在一个非捕获组中,然后再用^$:

^foo|bar$

当然不同于

^(?:foo|bar)$

还有,^$具有不同的含义(开始/结束)线而不是开始/结束)如果设置了某些选项。在支持正则表达式的文本编辑器中,这通常是默认行为。在某些语言中,特别是Ruby中,这种行为甚至不能被关闭。

因此,另一组锚只保证在整个字符串的开始/结束时匹配:

\A匹配在字符串的开头。

\Z匹配字符串的末尾或最后行中断之前。

\z在字符串的最末端匹配。

但并不是所有语言都支持这些锚点,尤其是JavaScript。


查看完整回答
反对 回复 2019-06-18
?
墨色风雨

TA贡献1853条经验 获得超6个赞

使用^$修饰符,用于表示regex模式相对于字符串开始和结束的位置:

Regex.Match("Red October", "^Red October$"); // passRegex.Match("The Hunt for Red October", "^Red October$"); // fail


查看完整回答
反对 回复 2019-06-18
  • 3 回答
  • 0 关注
  • 1032 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信