【问题标题】:Validate string to have no space char and only first and last char as delimeter验证字符串没有空格字符,只有第一个和最后一个字符作为分隔符
【发布时间】:2012-03-30 08:12:37
【问题描述】:

我需要验证字符串以符合下一个:

  • 没有空格字符
  • 以一个分隔符字符开始
  • 以一个分隔符字符结尾
  • 没有其他字符作为分隔符 char

如何做到这一点?

更新抱歉错过了,开头和结尾应该只有一个分隔符

【问题讨论】:

  • +1 表示正则表达式。立即学习,这是一项“必备”技能

标签: c# .net vb.net


【解决方案1】:

如果我理解你的问题,应该这样做:

char delimiter = ...  
string delimiterString = delimiter.ToString();
string s = ...
bool right = !s.Contains(' ') 
  && s.StartsWith(delimiterString) 
  && s.EndsWith(delimiterString)
  && !s.Substring(1,s.Length-2).Contains(delimiter);

【讨论】:

  • 看起来不错,顺便说一下 trim 会做多个并添加 null 检查
  • 现在它应该可以正常工作了,空检查留给读者作为练习。
【解决方案2】:

使用正则表达式...假设 # 为分隔符,中间的零字符为可接受。

Regex rx=new Regex("^#+[^\s]*#$");

return rx.IsMatch(teststring);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多