我有以下的原始文本:我的C#正則表達式匹配失敗的標籤之間的文本
<target xml:lang="ar">افصل الدائرة عن مخرج جهاز التنفس،\nواترك خراطيم المهايئ الزفيري متصلة.</target>
而我感興趣的<target xml:lang="ar">
和結束標記</target>
之間的文本,我意識到這是一個壞主意使用Regexm匹配HTML或XML標籤,但這些標籤是常量,因爲在那裏永遠不會添加屬性(它們是由一些工具生成的,並且始終是相同的)
現在我意識到有一百萬種方法來剝皮貓,而且我可以做一個子串匹配來獲取>和<之間的文本,但這真的讓我很沮喪,爲什麼模式雖然在線正則表達式測試人員確實符合http://regexstorm.net/tester等文本,但我選擇的方式仍然不起作用。
這裏是我的代碼:
string pattern = @"<target xml:lang=""ar"">(.*?)</target>";
string line = @"<target xml:lang=""ar"">افصل الدائرة عن مخرج جهاز التنفس،\nواترك خراطيم المهايئ الزفيري متصلة.</target>"
foreach (Match match in Regex.Matches(line, pattern))
{
// Split the Arabic text from the xml tags
string arabicTransMatch = match.Groups[1].Value;
string[] xmlTags = line.Split(new string[] { arabicTransMatch }, StringSplitOptions.None);
...
}
感謝堆您的幫助所有
乾杯,
西蒙
您需要使用'(?s)'或'Regex.Singleline'選項使'.'匹配新行。 – nhahtdh
看看http://regex101.com。您可以使用它來根據測試字符串測試正則表達式,並實時查看它們是否符合您的期望。 –
@JeffPrince:請不要爲.NET正則表達式提供regex101。不同的口味對他們每個人都有特定的怪癖。 – nhahtdh