\ Q и \ E и java.util.Pattern.quote()
- один и тот же подход.
Однако этот подход работает только для подмножества ароматов регулярных выражений.
Проверьте следующую ссылку и вы увидите, что 4 из 15 ароматов поддерживают его. Поэтому вам лучше использовать подход Гродригеса, если вам нужно выполнить свое регулярное выражение в чем-либо, кроме Java, например javascript (который использует ECMA).
http: //www.regular-expressions .info / refflavors.html
Вот один лайнер, который может работать.
"text to escape".replaceAll("([\\\\\\[\\]\\.\\^\\+])","\\\\$1");
Вы можете сделать это, не копируя файл, см. эту статью:
Уловка заключается в использовании FileShare .ReadWrite (из статьи):
private void LoadFile()
{
try
{
using(FileStream fileStream = new FileStream(
"logs/myapp.log",
FileMode.Open,
FileAccess.Read,
FileShare.ReadWrite))
{
using(StreamReader streamReader = new StreamReader(fileStream))
{
this.textBoxLogs.Text = streamReader.ReadToEnd();
}
}
}
catch(Exception ex)
{
MessageBox.Show("Error loading log file: " + ex.Message);
}
}
Вероятно, вы сможете создать копию и прочитать ее, даже если файл заблокирован.
Или, может быть, StreamReader в FileStream в зависимости от того, как SQL открыл файл?
new FileStream("c:\myfile.ext", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);