0
1

python 正規表現 meado,url 参考

Posted at

こんな感じという事で、お願い致します。
どんな感じかというと・・・

PowerShell 7.4.1
PS C:\xampp\htdocs\my_python>  & 'c:\Python\python.exe' 'c:\Users\tatty\.vscode\extensions\ms-python.debugpy-2024.0.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher' '62992' '--' 'C:\xampp\htdocs\my_python\py_seiki.py' 
s= aaa@xxx.com xxx.yyy@localhost bbb@yyy.net B.1_0-0.bb@xy.z.com ccc@zzz.org
t= ['aaa@xxx.com', 'B.1_0-0.bb@xy.z.com']
tt= ['xxx.yyy@localhost']
t= ['aaa@xxx.com', 'B.1_0-0.bb@xy.z.com', 'xxx.yyy@localhost']
u= []
v= [('aaa@xxx.com', 'aaa', 'xxx', 'com'), ('B.1_0-0.bb@xy.z.com', 'B.1_0-0.bb', 'xy.z', 'com')]
print is= [('aaa', 'xxx', 'com'), ('B.1_0-0.bb', 'xy.z', 'com')]
maching= aaa@xxx.com
macing= ['xxx', 'com']
macing= ['xxx', 'net.jp']
my_midoll= xxx.net.jp
my_cng= aaa@xxx.net.jp
next
maching= B.1_0-0.bb@xy.z.com
macing= ['xy', 'z', 'com']
macing= ['xy', 'z', 'net.jp']
my_midoll= xy.z.net.jp
my_cng= B.1_0-0.bb@xy.z.net.jp
next
maching= xxx.yyy@localhost
macing= ['localhost']
my_cng= xxx.yyy@localhost.net.jp
next
my_cng_str= aaa@xxx.net.jp xxx.yyy@localhost bbb@yyy.net B.1_0-0.bb@xy.z.net.jp ccc@zzz.org
my_urls= http://www.yahoo.com ,https://www.yahoo.com/あいう ai/


,http://www.yahoo.co.jp
,https://www.yahoo.co.jp
chngi_urls= <a href"http://www.yahoo.com">http://www.yahoo.com</a> ,<a href"https://www.yahoo.com/あいう">https://www.yahoo.com/あいう</a> ai/


,<a href"http://www.yahoo.co.jp">http://www.yahoo.co.jp</a>
,<a href"https://www.yahoo.co.jp">https://www.yahoo.co.jp</a>
PS C:\xampp\htdocs\my_python> 

メアドの記号の必要要素が足りないかも知れません。
u は一致が無い==0
urlは全角空白で切れます。

以下、参考


import re

s = 'aaa@xxx.com xxx.yyy@localhost bbb@yyy.net B.1_0-0.bb@xy.z.com ccc@zzz.org'
print("s=",s)
t = re.findall(r'[0-9a-zaA-Z\_\-\.]+@[0-9a-zaA-Z\_\-\.]+com', s) #もう少し要素がある場合は、()で囲む
print("t=",t)
tt=re.findall(r'[0-9a-zaA-Z\_\-\.]+@localhost', s)
print("tt=",tt)
t = t+tt
print("t=",t)
u=re.findall(r'[0-9a-zA-Z\_\-\.]+@[0-9a-zaA-Z\_\-\.]+coms', s)
print("u=",u)
v =re.findall(r'(([0-9a-zaA-Z\_\-\.]+)@([0-9a-zaA-Z\_\-\.]+)\.(com))', s)
print("v=",v)
print("print is=",re.findall(r'([0-9a-zaA-Z\_\-\.]+)@([0-9a-zaA-Z\_\-\.]+)\.(com)', s))
#
if len(t)==0 and len(u) == 0:
    print("None")
elif len(u)>0:
    for mymach in u:
        print("maching=",mymach)
        my_mach_line =mymach.split('@')
        print("macing=",my_mach_line)
        my_mach =my_mach_line[1].split('.')
        print("mach is=",my_mach)
        my_cng = my_mach_line[0]+'@'+my_mach[0]+'.net.jp'#これは@xy.z.com->@xy.net.jp 下を使っ使っている確定型のみ\.comのみ
        print("my_cng=",my_cng)
        print("next")
else:
    for mymach in t:
        print("maching=",mymach)
        my_after = mymach.split('@')
        my_mach_line =my_after[1].split('.')
        print("macing=",my_mach_line)
        if len(my_mach_line )==1:
            my_mach_line[0] += '.net.jp'
            my_cng = my_after[0]+'@'+my_mach_line[0]#これは@localhost->@localhost.net.jp
        else:
            my_mach_line[len(my_mach_line )-1] = 'net.jp'#これは@xy.z.com->@xy.z.net.jp
            print("macing=",my_mach_line)
            my_midoll='.'.join(my_mach_line)
            print("my_midoll=",my_midoll)
            my_cng = my_after[0]+'@'+my_midoll
        print("my_cng=",my_cng)
        print("next")
# 以下のように置換す
my_cng_str=re.sub(r'([0-9a-zA-Z\.]+@[a-z\.]+\.)com',"\\1"+"net.jp", s) 
print("my_cng_str=",my_cng_str)

# URLのタグへの変換
my_urls = "http://www.yahoo.com ,https://www.yahoo.com/あいう ai/ \n\n\n,http://www.yahoo.co.jp\n,https://www.yahoo.co.jp"
print("my_urls=",my_urls)
chngi_urls = re.sub(r'(https?://\S+|\.|!"|!\n+)',"<a href\"\\1\">\\1</a>", my_urls)
print("chngi_urls=",chngi_urls)

exit()

足りないところはよろしくお願いいたします。

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1