Lỗi Attributeerror: 'nonetype' object has no attribute 'group'?

mình có một đoạn mã sau của python

#execute 
if len(sys.argv) < 2:
	usage()
	sys.exit()
else:
	if sys.argv[1]=="help":
		usage()
		sys.exit()
	else:
		print ("-- HULK Attack Started --")
		if len(sys.argv)== 3:
			if sys.argv[2]=="safe":
				set_safe()
		url = sys.argv[1]
		if url.count("/")==2:
			url = url + "/"
		m = re.search('http\://([^/]*)/?.*', 'abcurl')
		host = m.group(1)
		for i in range(500):
			t = HTTPThread()
			t.start()
		t = MonitorThread()
		t.start()

khi chạy thì mắc lỗi sau

traceback (most recent call last):
host = m.group(1)
Attributeerror: 'nonetype' object has no attribute 'group'

ai giúp với

Hàm re.match sẽ trả về 2 TH:

  • đoạn regex dc tìm thấy: trả về MatchObject
  • không tìm thấy: trả về None

Trong TH này bạn chưa kiểm tra regex có match không( is not None)mà đã sử dụng MatchObject nên bị lỗi.

1 Like
m = re.search('http\://([^/]*)/?.*', 'abcurl')

Dòng này không match được kết quả nào nên mnone. Đổi lại thành

import re
m = re.search('http\://([^/]*)/?.*', 'http://daynhauhoc.com')
m.group(1)

cái m.group(1)
vẫn lỗi
ttributeerror: ‘nonetype’ object has no attribute ‘group’

mình chỉ mới học bạn fix lại và nêu rõ hơn đi

if m is not None:
    host=m.group(1)

còn cách khác không bạn

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?