[英]How to construct a regex which is not preceded by a specific character?
我正在用C ++准备PCRE正则表达式。 我想准备一个正则表达式,在该正则表达式中不应包含特定字符。
假设我有以下输入字符串:
Str1 = "www.host.com/abc/files/my.pdf"
Str2 = "www.host.com/abc/files/takeprint.jsp?filenam=my.pdf"
正则表达式的外观与Str1匹配,但与Str2不匹配。
我尝试过使用正则表达式,但没有用。
regex = "(.+)my(.*)(?<!\?)pdf$"
这是我认为可以解决此问题的RegEx:
.*/([^?]+?\.pdf$)
它将贪婪地匹配到最后一个/
。 之后,它将捕获不包含?
的任何长度的字符串?
,只要字符串的结尾以.pdf
结尾。
重要的部分是字符集[^?]
,它涵盖了不是问号的任何字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.