一个C#正则表达式:仅允许非空白空间,并且仅禁用()+

时间:2013-01-16 21:57:40

标签: c# regex c#-4.0 regex-negation

我正在尝试验证用户是否在服务器端将一些文本输入到富文本框中。我也不想让它们只放入HTML编码空间。我正在使用应用程序内置的正则表达式验证,所以我不能有多个模式。

是否可以将仅一个 C#正则表达式用于以下模式?

允许(一个或多个非空格字符)。不要允许空字符串:

^.*\S+.*$

- 他们需要输入一些文字。不允许所有空白区域:

!^\s+$ 

- 最可能的空格将显示为 。不允许仅包含HTML空格字符的字符串:

!^( )+$

我认为这样可行,但事实并非如此:

 ^.*\S+$(!(^(\s+)+$))!(^( )+$)

所以这两个是有效的字符串:

'lorem ipsum' 
'lorem ipsum'

2 个答案:

答案 0 :(得分:0)

我不清楚你想要捕捉到什么......但这有用吗?

^((\S(?<!&nbsp;))+((\s|&nbsp;)+)?)+$

件:
    "lorem"
    "lorem ipsum"
    "lorem&nbsp;ipsum"

不匹配:
    ""
    " "

已编辑以征求意见

答案 1 :(得分:0)

听起来这样可以正常工作(编辑以符合新要求):

^\s*(?!&nbsp;)\S