orOther_tags = re.compile(r' (?:(?:or)|(?:and))/cc other/jj ')中?:代表什么
时间: 2024-05-18 15:10:43 浏览: 17
在正则表达式中,"?"表示匹配前面的字符或组零次或一次。而"(?: )"是非捕获组的语法,表示不捕获该组的匹配结果,只起到分组的作用,可以提高正则表达式的效率。在这个正则表达式中,"(?:(?:or)|(?:and))"是一个非捕获组,用于匹配"or"或"and","/cc"表示匹配连词,"other/jj"表示匹配形容词"other"。
相关问题
RE_FEATURE_FUNC = re.compile('%x\\[-?\\d,\\d\\]') RE_FEATURE_COLUMN = re.compile('-?\\d') ?
`RE_FEATURE_FUNC` 是一个用于匹配特征函数的正则表达式对象。它可以用来识别形如 `%x[i,j]` 的特征函数表示,其中 `i` 和 `j` 是整数,表示特征函数作用在当前位置的前 `i` 个和后 `j` 个位置上。
以下是对 `RE_FEATURE_FUNC` 的解释:
- `%x` 表示匹配 `%x` 字符串。
- `\\[` 表示匹配 `[` 字符,由于 `[` 在正则表达式中有特殊含义,所以需要使用 `\\` 进行转义。
- `-?` 表示匹配可选的负号,即特征函数可以作用在当前位置的前面或后面。
- `\\d` 表示匹配一个数字。
- `,` 表示匹配逗号。
- `\\d` 表示匹配一个数字。
- `\\]` 表示匹配 `]` 字符,同样需要使用 `\\` 进行转义。
因此,`RE_FEATURE_FUNC` 可以匹配如 `%x[-1,2]`、`%x[0,0]`、`%x[3,0]` 等格式的特征函数。
而 `RE_FEATURE_COLUMN` 是一个用于匹配特征列的正则表达式对象。它可以用来识别形如 `-1`、`2` 等整数,表示特征函数作用在当前位置的前几个或后几个位置上。
以下是对 `RE_FEATURE_COLUMN` 的解释:
- `-?` 表示匹配可选的负号,用于表示特征函数作用在当前位置的前面或后面。
- `\\d` 表示匹配一个数字。
因此,`RE_FEATURE_COLUMN` 可以匹配如 `-1`、`2` 等格式的特征列。
这两个正则表达式对象可以用于解析特征函数的参数,从而进行特征提取和处理。
func InfoSpite(info string) (director, actor, year string) { directorRe, _ := regexp.Compile(`导演: (.*) 主演`) director = string(directorRe.Find([]byte(info))) actorRe, _ := regexp.Compile(`主演: (.*)`) actor = string(actorRe.Find([]byte(info))) yearRe, _ := regexp.Compile(`(\d+)`) year = string(yearRe.Find([]byte(info))) }
根据您提供的代码,我注意到函数名拼写错误。它应该是`InfoSpite`而不是`InfoSpitesyntax`。请尝试将代码修改为以下形式:
```go
func InfoSpite(info string) (director, actor, year string) {
directorRe, _ := regexp.Compile(`导演: (.*) 主演`)
director = string(directorRe.Find([]byte(info)))
actorRe, _ := regexp.Compile(`主演: (.*)`)
actor = string(actorRe.Find([]byte(info)))
yearRe, _ := regexp.Compile(`(\d+)`)
year = string(yearRe.Find([]byte(info)))
return director, actor, year
}
```
请注意,我已经修正了函数名称,并添加了返回语句,以确保函数返回所需的结果。
如果您还有其他问题,请随时提供更多的上下文或错误信息,我将尽力帮助您。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
import re,tkinter,requests,threading,tqdm as tt root = tkinter.Tk() root.title('在线视频解析') root.geometry('500x590+550+350') headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0'} ac = tkinter.Listbox(root, width=50, height=20, font=('黑体', 12)) ac.grid(row=2, columnspan=10, sticky="n" + "s" + "w" + "e") def sousuo(): i = b1.get() ac.delete(0, 'end') def extract_music_info(content): p = '|' content = re.sub(p, '', content, flags=re.S) pattern = re.compile('subject.*?href="(.*?)">(.*?)
', flags=re.S) return pattern.findall(content) def search_music(): url = 'https://www.hifini.com/search-' + i + '-1.htm' response = requests.get(url=url, headers=headers) return response.text def update_listbox(music_list): for music in music_list: pppp = music[1] + ":" + music[0] ac.insert('end', pppp) content = search_music() music_list = extract_music_info(content) update_listbox(music_list) def xiazzi(): def download_music(): ppp = ac.get(ac.curselection()) pp = re.search('thread.*?htm', ppp) v = pp.group() url1 = 'https://www.hifini.com/' + v response = requests.get(url=url1, headers=headers) ppp = response.text l2 = re.search('<script>.*?title:..(.*?).,.*?author:.(.*?).,.*?url:..(.*?).,', ppp, flags=re.S) p = 'https://www.hifini.com/' + l2.group(3) response = requests.get(url=p, headers=headers, stream=True) # 设置 stream=True 以启用流式下载 total_size = int(response.headers.get('Content-Length')) music_name = '{}-{}.mp3'.format(l2.group(2), l2.group(1)) progress_bar = tt.tqdm(total=total_size, unit='B', unit_scale=True) # 创建进度条 with open(music_name, 'wb') as f: for data in response.iter_content(chunk_size=1024): progress_bar.update(len(data)) # 更新进度条 f.write(data) progress_bar.close() # 关闭进度条 print(music_name) threading.Thread(target=download_music).start() a1 = tkinter.Label(root, text='音乐下载器', anchor="center", font=('黑体', 24)) a1.grid(row=0, columnspan=10, sticky="n" + "s" + "w" + "e") b1 = tkinter.Entry(root, width=35, font=('黑体', 16), ) b1.grid(row=1, column=3, padx=15) search_button = tkinter.Button(root, text='搜索', command=sousuo) search_button.grid(row=1, column=4) download_button = tkinter.Button(root, text='下载', command=xiazzi) download_button.grid(row=3, column=4) root.mainloop() 将download_button带有下载行为的按钮添加进列表,![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)