我试图验证验证问题,这是常规的expressin我正则表达式,我不是这个意思,但这种表达不容许空间重新验证
^\S+$
例如,如果我输入'测试我',这个表达式说这是无效的。我该如何解决这个问题以允许空格?
我试图验证验证问题,这是常规的expressin我正则表达式,我不是这个意思,但这种表达不容许空间重新验证
^\S+$
例如,如果我输入'测试我',这个表达式说这是无效的。我该如何解决这个问题以允许空格?
^
意味着
\S
是在正则表达式一个特殊的关键字,它表示“非空格字符”
“字符串的开始”会更好+
意味着找到以前的一次或多次
$
意味着
所以在“字符串的结束”英文,这个正则表达式说:从字符串的开始处开始,在字符串结尾之前找到一次或多次非空白字符。这就是为什么它不允许空格。
'\ S'并不特定于.NET Regex。 – OmnipotentEntity
也''S'匹配**非** - 空白 –
你是对的,但它适用于正则表达式的.NET实现。 – Haney
^\S+$ ^^ ^^ || || ^ start of string-------------+| || \S anything but a whitespace----+ || + one or more of what precedes---+| $ end of string-------------------+
(查看regular-expressions.info放大参考)
不知道你想改变什么,真的,因为这正则表达式似乎为不的唯一目的允许的空间已被写入。
那么,你想在你的问题中允许什么? –
正则表达式正在做的唯一事情是确保字符串中没有空格字符。编辑:对不起,它也确保它不是空的,因为它使用+而不是* – OmnipotentEntity
@OmnipotentEntity取决于正则表达式的味道,它还可以检查表达式驻留在行边界之间。请参阅RegexOptions.Multiline here:http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regexoptions.aspx –