簡體   English   中英

Python中的字符串和單詞操作

[英]String and word manipulation in Python

例:

我有一句話“ Face book是一家社交網絡公司”,我想通過將“ Face”和“ book”連接到“ Facebook”進行清理。 我想檢查並執行許多句子。 關於如何執行此操作的任何建議?

我想到了這樣的思路:首先對句子進行標記,然后遍歷每個單詞,並檢查“ face”之后的標記(單詞)是否為“ book”,然后刪除這兩個元素以及所有的“ Facebook”。

一個簡單的基於正則表達式的方法不夠嗎?

>>> import re
>>> s='Face book is a social networking company'
>>> re.sub(r'[Ff]ace [Bb]ook', 'Facebook', s)
'Facebook is a social networking company'

對我而言,在python中執行此操作最直接的方法是使用元組。 只需將所有字符串打包成一個元組,並在應用str.replace(old,new)方法的同時循環遍歷即可。 str.replace(old,new)用您指定的新子字符串替換字符串str中的子字符串。 下面的例子:

碼:

string1 = "Face book is a social networking company1"
string2 = "Face book is a social networking company2"
string3 = "Face book is a social networking company3"
old = "Face book"
new = "Facebook"

superdupletuple = (string1, string2,string3)

for i in superdupletuple:
    print(i.replace(old, new))

輸出:

Facebook is a social networking company1
Facebook is a social networking company2
Facebook is a social networking company3

在Python中,這可能看起來像這樣:(請記住,這只是一個粗略的主意,並非在所有情況下都是完美的)

----------

string = “I use Face book”
tokenized = string.split(“ “)
for i in range(0,len(tokenized)-1):
    if tokenized[i].lower()==“face” and tokenized[i+1].lower()==“book”:
        del tokenized[i+1]
        tokenized[i] = “Facebook”
    if i > len(tokenized):
        break

-----------

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM