Rustでの文字列比較、文字列の複数行での記述、正規表現
Rustでは文字列の比較は==や!=で可能です。
main.rs
――――――――――――――――――――
fn main() {
let string = "ABC";
println!("{}", string == "ABC"); //true
println!("{}", string == "abc"); //false
println!("{}", string == "DEF"); //false
}
――――――――――――――――――――
コピペする場合は2文字の全角空白を4文字の半角空白に置換してください。
Rustは文字列を複数行で記述できます。
また、Vecにjoinが有ります。
main.rs
――――――――――――――――――――
fn main() {
println!("\
<html>
<body>
<p>日本語</p>
</body>
</html>\
");
println!("{}", vec![
"<html>",
" <body>",
" <p>日本語</p>",
" </body>",
"</html>\n"
].join("\n"));
}
――――――――――――――――――――
コピペする場合は2文字の全角空白を4文字の半角空白に置換してください。
正規表現はregexという外部ライブラリ クレートを利用します。
regexのドキュメントはhttps://docs.rs/regex/latest/regex/に有ります。
Cargo.toml
――――――――――――――――――――
[package]
name = "epub_maker"
version = "0.1.0"
edition = "2021"
[dependencies]
regex = "1"
――――――――――――――――――――
文字列と正規表現の一致、不一致はRegexのis_matchを利用します。
main.rs
――――――――――――――――――――
use regex::Regex;
fn main() {
let regex = Regex::new("^[A-Z]+$").unwrap();
let string = "DEF";
println!("{}", regex.is_match("ABC")); //true
println!("{}", regex.is_match(string)); //true
println!("{}", regex.is_match("abc")); //false
println!("{}", regex.is_match("123")); //false
}
――――――――――――――――――――
コピペする場合は2文字の全角空白を4文字の半角空白に置換してください。
ちなみに、Regex::newはResultに包まれたRegexを返すので、Resultのunwrapで内部のRegexを取り出す必要が有ります。
ただし、Resultのunwrapはエラー(Err)の場合はアプリケーション終了(panic)に成ります。
エラー処理をしたい場合はResultの、unwrapではなく、unwrap_orなどを利用します。
エラーメッセージを指定したい場合はResultの、unwrapではなく、expectを利用します。
エラーを呼び出し元へ移譲したい場合は?演算子を利用します。
正規表現による部分文字列の抽出はRegexのcaptures_iterを利用します。
main.rs
――――――――――――――――――――
use regex::Regex;
fn main() {
let regex = Regex::new("([a-zA-Z]+)").unwrap();
for group in regex.captures_iter("123ABC456DEF789GHI") {
println!("{}", &group[1]); //ABC\nDEF\nGHI
}
}
――――――――――――――――――――
コピペする場合は2文字の全角空白を4文字の半角空白に置換してください。
正規表現による文字列の置換はRegexのreplace_allを利用します。
Regexのreplace_allは1回以上置換します。Regexのreplaceは1回だけ置換します。
main.rs
――――――――――――――――――――
use regex::Regex;
fn main() {
let regex = Regex::new("([a-zA-Z]+)([0-9]+)").unwrap();
let string = "ABC123";
let string = regex.replace_all(string, "$2$1").to_string();
println!("{}", string); //123ABC
}
――――――――――――――――――――
コピペする場合は2文字の全角空白を4文字の半角空白に置換してください。
Regexのreplace_allはJavaのStringのreplaceAllに相当します。
RegexのreplaceはJavaのStringのreplaceFirstに相当します。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます