如何使正则表达式仅匹配完全匹配?

发布于 2024-10-10 12:12:30 字数 272 浏览 5 评论 0原文

好的,基本上我有一些通过正则表达式匹配 URL 的代码。然后它会根据 URL 匹配的正则表达式调用一些函数。我从不想为一个 URL 调用多个函数,并且我希望正则表达式匹配必须是“精确的”

例如,对于简单的 URL / 我使用一个简单的正则表达式 / 将匹配 /,但它也会匹配 /foo/foo/bar 等内容。

如何防止 C#/.Net 中的这种部分匹配行为?

Ok, so basically I have some bit of code that matches URLs by regexs. It then will call some function based on which regex the URL matches against. I never want for more than one function to be called for a URL and I want the regex matches to have to be "exact"

For instance, with the simple URL / I use a simple regex / which will match / but it will also match things like /foo and /foo/bar.

How can I prevent this partial matching behavior in C#/.Net?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

︶ ̄淡然 2024-10-17 12:12:30

使用 ^ 匹配字符串的开头,使用 $ 匹配字符串的结尾。

例如:^/$ 匹配 / 但不匹配 /foo^/ 匹配 /foo 但不匹配 foo/

Use ^ for matching the start of a string and $ for the end of a string.

For example: ^/$ matches / but not /foo. And ^/ matches /foo but not foo/.

明月夜 2024-10-17 12:12:30

在要匹配的关键字的开头和结尾处添加空格。
例如,您有一个字符串“Hey!foobar I am foo bar。”现在假设您想匹配foo。
您可以执行此操作 /\s+foo\s+/i 这将仅返回 foo 而不是 foobar 的匹配项。

Append space at start and end of keyword you want to match with.
For example you have a string "Hey! foobar I am foo bar." Now lets say you want to match foo.
You can do this /\s+foo\s+/i this will return match for only foo and not foobar.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文