簡體   English   中英

在Python中查找字符串的所有上,下組合

[英]Find all upper,lower combinations of string in Python

我想在列表的每一行中搜索一個字符串,它將匹配每種可能的UP / LOW組合情況

例如:如果我鍵入“ all”,它將搜索“ all”,“ All”,“ ALL”,“ all”,“ all”……等。它的工作方式與我認為的文本文檔高級搜索類似。

更詳細的信息:如果輸入了'all' ,則出現在該行中的所有字符串都將返回FOUNDED: 'all', 'alL', 'All', 'ALL', 'aLL', 'aLl', 'AlL', 'ALl'

這是我正確查找字符串的方式

string = "all"
line[i].find(string)

如果該line是“ ALL”,則not found結果,因此這是一個限制。

>>> lines = ['All', 'ALL', 'all', 'WALL', 'BLAA', 'Balls']
>>> for line in lines:
...     if 'all' in line.lower():
...         print(line)


All
ALL
all
WALL
Balls

嘗試理解列表,

In [25]: line = ['All', 'ALL', 'all', 'WALL', 'BLAA', 'Balls']

In [26]: [i for i in line if 'all' in i.lower() ]
Out[26]: ['All', 'ALL', 'all', 'WALL', 'Balls']

有幾種方法可以實現這一目標。 他們來了:

1.更改要搜索的字符串的大小寫:

line[i].lower().find(string.lower())

要么

line[i].upper().find(string.upper())

在這里,我們濫用原始字符串的不變性,因為盡管我們對它們應用.upper() ,但是它們不會被更改,因為我們沒有進行任何賦值。

2.使用re模塊也將有所幫助:

import re
re.search('all', line[0], re.IGNORECASE)

要么

re.search('(?i)all',line[0])

暫無
暫無

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

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