Pythonで文字列の最初または最後のテキストを一致させる方法は?
問題..
特定のテキストパターンについて、文字列の開始または終了を確認する必要があると想定します。一般的なパターンはファイル名拡張子ですが、何でもかまいません。これを行う方法について、いくつかの方法を紹介します。
Startswith()メソッド
文字列の先頭を確認する簡単な方法は、startswith()メソッドを使用することです。
例
text = "Is USA colder than Australia?" print(f"output \n {text.startswith('Is')}")
出力
True
例
filename = "Hello_world.txt" print(f"output \n {filename.startswith('Hello')}")
出力
True
例
site_url = 'https://www.something.com' print(f"output \n {site_url.startswith('http:')}")
出力
False
例
print(f"output \n {site_url.startswith('https:')}")
出力
True
endswith()メソッド。
文字列の終わりを確認する簡単な方法は、endswith()メソッドを使用することです。
出力
text = "Is USA colder than Australia?" print(f"output \n {text.endswith('?')}")
出力
True
例
filename = "Hello_world.txt" print(f"output \n {filename.endswith('.txt')}")
出力
True
上記の方法で複数の選択肢を確認したい場合は、タプルを提供する必要があります。一般的な使用法の1つは、ファイル拡張子のチェックです。ディレクトリ内の「.txt」ファイルと「.csv」ファイルを検証する必要があるとしましょう。
import os filenames = os.listdir('.')
# Let us first check if there are files print(f"output \n {any(name.endswith(('.csv',',txt')) for name in filenames)}")があるかどうかを確認しましょう。
出力
True
出力
[name for name in filenames if name.endswith(('.csv', '.txt')) ]
出力
['file1.csv', 'HRDataset.csv', 'Input.csv', 'input.txt', 'input_copy.txt', 'movies_data.csv', 'my_html_data_to_csv.csv', 'temporary_file1_for_zip.csv', 'temporary_file2_for_zip.csv', 'test.csv', 'test1.txt', 'test2.txt', 'tmdb_5000_movies.csv']
これらのメソッドはタプルを受け入れることを忘れないでください。検索する選択肢のリストがある場合は、それらをタプルに変換する必要があります。
import os # list with choices patters = ['.csv','.txt'] # get the file names filenames = os.listdir('.') # Let us first check if there are files any(name.endswith(patters) for name in filenames)
出力
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) in 8 9 # Let us first check if there are files ---> 10 any(name.endswith(patters) for name in filenames) in (.0) 8 9 # Let us first check if there are files ---> 10 any(name.endswith(patters) for name in filenames) TypeError: endswith first arg must be str or a tuple of str, not list
上記のコマンドはエラーを返したので、リストをタプルに変換する必要があります。
例
# Let us first check if there are files any(name.endswith(tuple(patters)) for name in filenames)
出力
True
同様に、ファイル名を取得するには、リストをタプルに変換する必要があります。
例
[name for name in filenames if name.endswith(tuple(patters)) ]
出力
['file1.csv', 'HRDataset.csv', 'Input.csv', 'input.txt', 'input_copy.txt', 'movies_data.csv', 'my_html_data_to_csv.csv', 'temporary_file1_for_zip.csv', 'temporary_file2_for_zip.csv', 'test.csv', 'test1.txt', 'test2.txt', 'tmdb_5000_movies.csv']
最後に、startswith()メソッドとendswith()メソッドは、一般的なデータ削減などの他の操作と組み合わせると見栄えがします。例:
例
if any(name.endswith(tuple(patters)) for name in filenames): <perform the logic here>
-
Java RegExを使用して入力の終わりを一致させる方法は?
メタ文字「\\z」を使用して、入力の終わりに一致させることができます。 例 import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Example { public static void main(String args[]) { //Reading String from user System.out.println("E
-
Pythonでキーボードからコピーしたテキストを貼り付けるにはどうすればよいですか?
Pythonには、さまざまなPythonアプリケーションの開発で追加機能を実装する方法を提供する多くの組み込みライブラリとモジュールが用意されています。 パイパークリップ は、Pythonアプリケーションでコピーアンドペースト操作を実装するためのクロスプラットフォームのPythonモジュールの1つです。 Pythonアプリケーションで使用するには、次のコマンドを使用してインストールする必要があります。 pip install pyperclip クリップボードからテキストをコピーして画面に表示するアプリケーションを開発することで、実用的なユースケースを実装できます。さらに、コピーしたテキスト