[英]Regular expression find string outside square brackets
我有以下示例數據。 最終目標是即時翻譯方括號外的數據(如西班牙語等其他語言)。
下面的代碼適用於大多數情況,但是當括號 [] 在字符串內時,由於明顯的原因,它對於最后一個數據失敗。
所以我想知道如何編寫一個只會抓住括號外的東西的表達式。 與我現在正在做的完全相反。 請記住,可能存在根本沒有任何方括號的消息。 您可以假設左括號總是有右括號。
namespace RegExDemo
{
class Program
{
static void Main(string[] args)
{
string[] data = new string[]
{
"[00:05:00] Insert buckle tongue [0/1 = 5.81mA]",
"Remove buckle tongue [1/1 = 5.81mA]",
"Move track forward",
"Move track forward [MinCrt: 1.0, 0.1A, MaxCrt: 5.0] [MinPos: 450mm, 420, 520mm]",
"Waiting before taking reading [500ms]",
"Waiting [500ms] before taking reading"
};
var regEx = new Regex(@"\[(.*?)\]");
foreach (var instruction in data)
{
var instructionsOnly = regEx.Replace(instruction, string.Empty).Trim();
var newInstruction = "'This is now Spanish: " + instructionsOnly + "'";
var newFinalValue = instruction.Replace(instructionsOnly, newInstruction);
Console.WriteLine(newFinalValue);
}
Console.WriteLine("All done");
Console.ReadLine();
}
}
}
不完全符合您的要求,但我建議您這樣做:
namespace RegExDemo
{
class Program
{
static void Main(string[] args)
{
string[] data = new string[]
{
"[00:05:00] Insert buckle tongue [0/1 = 5.81mA]",
"Remove buckle tongue [1/1 = 5.81mA]",
"Move track forward",
"Move track forward [MinCrt: 1.0, 0.1A, MaxCrt: 5.0] [MinPos: 450mm, 420, 520mm]",
"Waiting before taking reading [500ms]",
"Waiting [500ms] before taking reading"
};
var regEx = new Regex(@"\[.*?\]"); // lose the parentheses
var placeholder = "SOMETHINGTHETRANSLATIONSERVICECANBETRUSTEDNOTTOTRYTOTRANSLATE";
foreach (var instruction in data)
{
var match = regEx.Match(instruction);
var instructionsOnly = regEx.Replace(instruction, placeholder).Trim();
var newInstruction = "'This is now Spanish: " + instructionsOnly + "'";
var newFinalValue = newInstruction.Replace(placeholder, match.Value);
Console.WriteLine(newFinalValue);
}
Console.WriteLine("All done");
Console.ReadLine();
}
}
}
糟糕,這是錯誤的; 起初沒有看到可以有多個括號表達式。 給我一點時間。
我在機器翻譯服務方面有一些經驗,通常他們不理會全大寫單詞混搭。 但是您可以嘗試一系列符號或任何似乎適用於您的特定服務的符號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.