Javaの場合
引用を表す「\Q」と引用の終わりを表す「\E」で囲む
import java.util.regex.Pattern;
class SampleEncodeRegExp{
public static void main(String[] args){
String escapedRegexp = Pattern.quote("a.c");
System.out.println(escapedRegexp); //=> \Qa.c\E
System.out.println("a.c".matches(escapedRegexp)); //=> true
System.out.println("abc".matches(escapedRegexp)); //=> false
}
}
class SampleEncodeRegExp{
public static void main(String[] args){
String escapedRegexp = Pattern.quote("a.c");
System.out.println(escapedRegexp); //=> \Qa.c\E
System.out.println("a.c".matches(escapedRegexp)); //=> true
System.out.println("abc".matches(escapedRegexp)); //=> false
}
}
Rubyの場合
メタキャラクタに「\」を付加してエスケープする
String escapedRegexp = Regexp.quote("a.c")
puts escapedRegexp # => a\.c
puts "a.c" =~ Regexp.new(escapedRegexp) # => 0
puts "abc" =~ Regexp.new(escapedRegexp) # => nil
String escapedRegexp = Regexp.escape("a.c")
puts escapedRegexp # => a\.c
puts "a.c" =~ Regexp.new(escapedRegexp) # => 0
puts "abc" =~ Regexp.new(escapedRegexp) # => nil
puts escapedRegexp # => a\.c
puts "a.c" =~ Regexp.new(escapedRegexp) # => 0
puts "abc" =~ Regexp.new(escapedRegexp) # => nil
String escapedRegexp = Regexp.escape("a.c")
puts escapedRegexp # => a\.c
puts "a.c" =~ Regexp.new(escapedRegexp) # => 0
puts "abc" =~ Regexp.new(escapedRegexp) # => nil
JavaScriptの場合
「\W」(英数字以外)を置換する、つまり記号とマルチバイト文字をエスケープする
JavaScriptの正規表現は、エスケープされても意味をなさない場合にはエスケープそのものが無視される(?)
JavaScriptの正規表現は、エスケープされても意味をなさない場合にはエスケープそのものが無視される(?)
var escapedRegexp = "a.c".replace(/\W/g,"\\$&");
alert(escapedRegexp); // => a\.c
alert(new RegExp(escapedRegexp).test("a.c")); // => true
alert(new RegExp(escapedRegexp).test("abc")); // => false
alert(escapedRegexp); // => a\.c
alert(new RegExp(escapedRegexp).test("a.c")); // => true
alert(new RegExp(escapedRegexp).test("abc")); // => false
JavaScriptについては以下のentryのコメント参照