JavaScript正規表現標準は、検索/置換を行うときにケースを強制することをサポートしていますか?
私は一般的に、正規表現の置換部分でキャプチャグループのケースを強制するための\uなどのオプションを知っています。しかし、JavaScript正規表現でこれを行う方法を理解することはできません。 私はJavaScriptコード自体にアクセスできませんが、使用しているプログラムでは、正規表現エンジン自体に渡される正規表現文字列を入力できます。
JavaScript正規表現標準は、検索/置換を行うときにケースを強制することをサポートしていますか?
私は一般的に、正規表現の置換部分でキャプチャグループのケースを強制するための\uなどのオプションを知っています。しかし、JavaScript正規表現でこれを行う方法を理解することはできません。 私はJavaScriptコード自体にアクセスできませんが、使用しているプログラムでは、正規表現エンジン自体に渡される正規表現文字列を入力できます。
私があなたを正しく理解していれば、いいえ。
正規表現パターン内から (一致を大文字に変換するために) JavaScript を評価することはできません。
大文字に変換するための str.replace() のみを認識しています。
文字列の一致は正規表現を使用して行われます。ただし、文字列の置換は、対象の文字列のどの部分を置き換えるか (正規表現の一致によって供給される) のみを考慮し、与えられた内容に基づいて直接文字列を置換するだけです。 :
var subject = "This is a subject string";
// fails, case-sensitive match by default
subject.replace(/this/, "That");
// succeeds, case-insensitive expression using /i modifier, replaces the word "This" with the word "That"
subject.replace(/this/i, "That");
ここで、一致した文字列の一部をキャプチャし、それを使用して大文字と小文字を変更したい場合は、式グループ (式の括弧) を使用してそれを行うこともできます。
var subject = "This is a subject string";
var matches = subject.match(/(subject) string/i);
if (matches.length > 0)
{
// matches[0] is the entire match, or "subject string"
// matches[1] is the first group match, or "subject"
subject.replace(matches[1], matches[1].toUpperCase());
// subject now reads "This is a SUBJECT string"
}
要するに、必要に応じて、大文字と小文字の区別を処理できる一致を実行します。置換を行うのは、置換に使用する直接文字列を指定するのと同じくらい簡単です。
/i
JavaScript の正規表現はデフォルトで大文字と小文字が区別され、フラグが渡された場合は大文字と小文字を区別しません。