我有以下原始文本:
<target xml:lang="ar">افصل الدائرة عن مخرج جهاز التنفس،nواترك خراطيم المهايئ الزفيري متصلة.</target>
我对<target xml:lang="ar">
和结束标签</target>
之间的文本感兴趣,我意识到将HTML或XML标签与Regexm匹配是一个坏主意,但这些标签是常量,因为永远不会添加属性(它们是由一些工具生成的,并且总是相同的)
现在我意识到有一百万种方法可以给猫剥皮,我可以做一个子字符串匹配来获取>和
下面是我的代码:
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);
...
}
非常感谢大家的帮助
欢呼,西蒙
由于对标签使用Regex的不满,我将回答我自己的问题,说明我已经避免使用Regex,而只是使用Substring方法;
int startIndex = line.IndexOf(">") + 1;
line = line.Substring(startIndex, line.IndexOf("<", startIndex));
至于修复Regex匹配问题,@nhahtdh给出的关于SingleLine选项的建议做到了。
感谢大家的评论