我正在用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$"
答案 0 :(得分:0)
答案 1 :(得分:0)
这是我认为可以解决问题的RegEx:
.*/([^?]+?\.pdf$)
它会贪婪地匹配任何直到最后/
的内容。在此之后,它将捕获任何长度不包含?
的字符串,只要字符串的结尾以.pdf
结尾。
重要的部分是字符集[^?]
,它涵盖任何不是问号的字符。