我正在尝试使用RegEx来提取某些带有不同变体的网址的特定部分。 这是通用格式:
models <- by_dest %>%
do(myWxTest(.))
有时“mip”部分不存在,URL如下所示:
http://www.blackpages.com/cityName-StateName/mip/part-I-want-to-extract/randomCharacters
我开始写下面的RE:
http://www.blackpages.com/cityName-StateName/part-I-want-to-extract/randomCharacters
re.compile("blackpages\.com/.*")
匹配任何角色,现在,当我遇到“/”时如何停止并在遇到下一个“/”之前提取所有内容?这会给我我想要提取的部分。
答案 0 :(得分:1)
您需要使用否定的字符类:
re.compile(r"blackpages\.com/([^/]*)")
^^^^
[^/]*
将匹配/
以外的0 +字符,尽可能多(贪婪)。
如果您希望/
之后至少有一个字符,请使用+
量词(1次或更多次出现),而不是*
。
请参阅regex demo
import re
rx = r"blackpages\.com/([^/]*)"
ss = ["http://www.blackpages.com/cityName-StateName/mip/part-I-want-to-extract/randomCharacters",
"http://www.blackpages.com/cityName-StateName/part-I-want-to-extract/randomCharacters"]
for s in ss:
m = re.search(rx, s)
if m:
print(m.group(1))
输出:
cityName-StateName
cityName-StateName