我需要在数字和字母之间插入一个标签:
示例输入:44World Cup输出:44 World Cup我遇到的问题是,我还需要指定数字旁边单词的长度。
例如:如果单词是th或TH,或者数字旁边的字母或单词长度等于2,我不想插入空格。
我住在44th Avenue上不会受到影响,不过,我住的44大道将改为。我住在44 Avenue上。
到目前为止,我所掌握的只是这个正则表达式,接近但不太有效:
public string AddSpace(string input)
{
return Regex.Replace(input,
"(?<=[0-9])(?=[A-Za-z])|(?<=[A-Za-z])(?=[0-9])", " ");
}上面的代码在任意数字、字母/单词序列之间插入一个制表符。
发布于 2014-05-08 07:34:47
你的问题没有简单的解决办法。因为在很多情况下,你会把字母和数字放在一起,比如“1”、“2”、“3”等等。
唯一的办法是寻找每一个案例,并威胁它作为一个词。
发布于 2014-05-08 07:40:09
您可以创建一个Dictionary<int,string>对象来映射具有允许后缀的数字。例如,(1,"st"),(2,"nd"),(3,"rd")等等。
现在,每当您在字符串中遇到一组数字时,取最后一个数字和该数字之后的前两个字符,并检查字典以确定是否插入空格/选项卡。
在我看来,这是一个复杂的逻辑,不能通过regex实现。
https://stackoverflow.com/questions/23534599
复制相似问题