[英]Extracting the remaining substring out of square brackets in a sentence using 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.