繁体   English   中英

使用Regex提取句子的最后一个字符

[英]Extracting last character of a sentence using Regex

我想提取字符串的最后一个字符。 实际上,我应该以例子来说明。 以下是我要从中提取的字符串:

<spara h-align="right" bgcolor="none" type="verse" id="1" pnum="1">
    <line>
        <emphasis type="italic">Approaches to Teaching and Learning</emphasis>
    </line>
</spara>

在上面的字符串中,如果没有空格,我想在单词“ Learning”和“ </emphasis> ”之间插入空格。

谢谢,

看看这里的一些Linq to XML示例,而不是使用Regex。

使用Linq to XML,您可以按照以下步骤进行操作:

XDocument doc = XDocument.Load("xmlfilename");

foreach (var emphasis in doc.Descendants("emphasis"))
{
      if (emphasis.Value.Last() != ' ')
         emphasis.Value += " ";
}
doc.Save("outputfilename");

您可以在Load中使用流,阅读器等来代替文件

像下面这样的东西?

Regex.Replace(yourString, @"(>[^<]+[^ ])<", @"$1 <");

该解决方案假定一个句子在><之间,并且一个或多个字符长。

该句子确实在XML内,还是您使用许多XML或DOM方法中的任何一种将其提取出来? 例如,使用此:

foreach(node in YourDOM.SelectNodes("//emphasis[@type='italic']"))
{
    string yourString = node.FirstChild.Value;
}

如果是这样,那么如果字符串是独立的,则可以执行此操作,这更简单,更安全:

Regex.Replace(yourString, "([^ ])$", "$1 "); 

编辑:我最初错过了如果没有空间存在 ,上面的帖子是用此信息编辑的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM