gpt4 book ai didi

.net - 正则表达式太松散

转载 作者:行者123 更新时间:2023-12-01 07:45:26 24 4
gpt4 key购买 nike

我有以下正则表达式

Regex(@"(^http|https)://(w){0,3}(\.)?(.)*lycos\.(.)*/(.)*(&|\?)(q|query)=(.)*")

我希望它匹配:

http://search.lycos.com/web?q=cautare

但它不应该匹配:

http://www.google-analytics.com/__utm.gif?utmwv=5.3.9&utms=1&utmn=932580756&utmhn=search.lycos.com&utmcs=utf-8&utmsr=1920x1080&utmvp=1920x979&utmsc=32-bit&utmul=en-us&utmje=1&utmfl=11.6 r602&utmdt=searchmeup - lycos&utmhid=2063854819&utmr=0&utmp=/web?q=searchmeup&utmac=ua-2342215-18&utmcc=__utma=1.950014844.1362381742.1362387055.1362404209.3;+__utmz=1.1362387055.2.2.utmcsr=lycos.com|utmccn=(referral)|utmcmd=referral|utmcct=/;&utmu=qlag~

有没有办法让正则表达式更具限制性?

最佳答案

(.)*(实际上应该是 .*)匹配 任何内容(换行符除外),这就是您的模式如此宽松的原因.

所以代替

Regex(@"(^http|https)://w{0,3}(\.)?.*lycos\..*/.*(&|\?)(q|query)=.*")

您可以应用除 . 之外的其他标记,例如 [^/] 用于非斜杠字符,\w 用于字母数字字符或\S 用于非空格字符:

Regex(@"(^http|https)://w{0,3}(\.)?\w*\.lycos\.[^/]*/[^&?]*(&|\?)(q|query)=\w*")

关于.net - 正则表达式太松散,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15203662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com