写一个正则表达式。要求target中包含http://86.1.53.88:9011/prod-api/system/ryxx/,但不包含http://86.1.53.88:9011/prod-api/system/ryxx/list
时间: 2024-10-14 10:10:07 浏览: 10
你可以使用Python的`re`模块来编写一个正则表达式,该正则表达式匹配字符串中包含`http://86.1.53.88:9011/prod-api/system/ryxx/`但不包含`http://86.1.53.88:9011/prod-api/system/ryxx/list`的部分。这里的关键点是要确保只匹配第一个出现的情况。
以下是如何做到这一点的一个示例:
```python
import re
def match_target(target):
pattern = r"(?<!http://86.1.53.88:9011/prod-api/system/ryxx/)http://86.1.53.88:9011/prod-api/system/ryxx/(?!.*list)"
match = re.search(pattern, target)
if match:
return match.group(0) # 返回匹配到的子串
else:
return "Target doesn't match the requirement"
# 测试用例
target_string = "This is a test string with http://86.1.53.88:9011/prod-api/system/ryxx/ but not http://86.1.53.88:9011/prod-api/system/ryxx/list"
print(match_target(target_string))
```
在这个例子中,`(?<!...)`是一个否定的前瞻断言,确保前面没有`http://86.1.53.88:9011/prod-api/system/ryxx/`,`(...)(?!)`是一个否定的后顾否定,确保后面不会紧接着`list`。
阅读全文