溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python3 re怎么匹配滿足條件的選項

發(fā)布時間:2020-11-21 09:19:17 來源:億速云 閱讀:227 作者:小新 欄目:編程語言

小編給大家分享一下python3 re怎么匹配滿足條件的選項,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

編寫一個程序,復(fù)制一段文本到剪貼板后,運行程序,自動找出文本所有的電話號碼和郵件地址,并復(fù)制到剪貼板供用戶使用。

思路:

  • 從剪貼板中獲取文本

  • 匹配出所有的電話號碼和郵件地址

  • 將它們粘貼到剪貼板

實現(xiàn):

  • 使用pyperclip模塊復(fù)制或粘貼字符串,pyperclip 需要使用pip安裝

  • 創(chuàng)建兩個正則表達(dá)式,一個匹配電話,另一個匹配郵件地址

  • 將匹配好的字符串整理好,處理一下格式,發(fā)送給剪貼板

  • 如果沒有找到匹配,報錯或提示用戶

 

代碼:

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# author: Windrivder
# email : windrivder@gmail.com
# date  : 17/03/27 12:58:05
 
import re, pyperclip
 
# 匹配電話
phoneRegex = re.compile(r'''(
    ^(13[0-9]|              # 匹配13開頭的電話
    14[5|7]|
    15[0|1|2|3|5|6|7|8|9]|
    18[0|1|2|3|5|6|7|8|9])
    \d{8}$
)''', re.VERBOSE)           # 如上,傳入?yún)?shù) re.VERBOSE 可以給正則表達(dá)式添加注釋,詳見附錄
 
# 匹配郵件地址
emailRegex = re.compile(r'''(
    [a-zA-Z0-9._%+-]+           # email-username
    @
    [a-zA-Z0-9.-]+              # domain-name
    (\.[a-zA-Z]{2,4})            # dot-something
)''', re.VERBOSE)
 
# 從剪貼板中獲取字符串
text = str(pyperclip.paste())
# 存放匹配到的字符串
matches = []
for phone in phoneRegex.findall(text):
    matches.append(phone[0])
for email in emailRegex.findall(text):
    matches.append(email[0])
 
# 將匹配到的字符串復(fù)制到剪貼板
if len(matches) > 0:
    pyperclip.copy('\n'.join(matches))
    print('Copied to clipboard:')
    print('\n'.join(matches))
else:
    print('No phone or email found.')

以上是python3 re怎么匹配滿足條件的選項的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI