regexptranslate
テキストを正規表現に変換
説明
例
関数 regexptranslate
を使用して、文字ベクトルの特殊文字を変換します。次に、regexp
でその結果を正規表現として使用します。
'\n'
文字を含む文字ベクトルを作成します。
chr = 'The sequence \n generates a new line.'
chr = 'The sequence \n generates a new line.'
'\n'
を '\'
と 'n'
の連続した 2 文字として検索する正規表現を作成します。関数 regexp
は '\n'
を改行文字として解釈するため、regexptranslate
を使用して、'\n'
をエスケープする正規表現を作成します。
pattern = regexptranslate('escape','\n')
pattern = '\\n'
chr
で '\n'
の開始インデックスを検索します。regexp
が '\n'
を改行として解釈しないようにするには、pattern
を正規表現として使用します。
idx = regexp(chr,pattern)
idx = 14
'\n'
をエスケープせずに regexp
を呼び出します。regexp
は '\n'
を改行として解釈するため、chr
のリテラル文字は検索されません。関数 regexp
は、一致が見つからない場合は空の配列を返します。
idx = regexp(chr,'\n')
idx = []
string を作成します。
str = "Put your money in."
str = "Put your money in."
テキスト '$0.02'
を、'money'
という語と置き換えるテキストとして指定します。'$'
文字と '.'
文字をエスケープするには、regexptranslate
を使用します。
r = regexptranslate('escape','$0.02')
r = '\$0\.02'
関数 regexprep
を使用して 'money'
を置き換えます。
newStr = regexprep(str,'money',r)
newStr = "Put your $0.02 in."
ファイル名を含む string 配列を作成します。次に、'.mat'
で終わるファイル名のみを検索します。
str = ["test1.mat","myfile.mat","my-matlab-script.m", ... "jan30.mat","table3.xls"]
str = 1×5 string
"test1.mat" "myfile.mat" "my-matlab-script.m" "jan30.mat" "table3.xls"
string を正規表現と一致させるには、'*.mat'
を正規表現として指定します。次に、関数 regexptranslate
を使用してワイルドカード文字 '*'
を変換します。
pattern = regexptranslate('wildcard','*.mat')
pattern = '.*\.mat'
pattern
で指定した正規表現を使用して、str
の一致する要素を検索します。
matches = regexp(str,pattern)
matches=1×5 cell array
{[1]} {[1]} {0×0 double} {[1]} {0×0 double}
logical 配列 TF
を作成します。str
の対応する要素が pattern
と一致する要素に 1
が格納されます。その後、TF
を使用して str
のインデックスを指定し、'.mat'
で終了するファイル名を表示します。
tf = ~cellfun('isempty',matches);
newStr = str(tf)
newStr = 1×3 string
"test1.mat" "myfile.mat" "jan30.mat"
空白文字 (スペース文字や改行文字など) で区切られた単語を含む文字ベクトルを作成します。
chr = 'Whose woods these are I think I know.'; chr = [chr newline 'His house is in the village though']
chr = 'Whose woods these are I think I know. His house is in the village though'
空白文字と一致する正規表現として '\s'
を指定します。その後、chr
にあるこれらの文字を置き換えます。
expression = '\s'; newChr = regexptranslate('flexible',chr,expression)
newChr = 'Whose\swoods\sthese\sare\sI\sthink\sI\sknow.\sHis\shouse\sis\sin\sthe\svillage\sthough'
入力引数
変換のタイプ。文字ベクトルまたは string スカラーとして指定します。次の表のオプションを使用して、特殊文字やワイルドカード文字を変換したり、テキストを一致する正規表現に置き換えることができます。
変換のタイプ | 説明 |
---|---|
|
|
|
|
|
この構文は |
入力テキスト。文字ベクトル、文字ベクトルの cell 配列または string 配列として指定します。
バージョン履歴
R2006a より前に導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)