在不使用replace方法的情况下将空白区域删除添加到正则表达式

时间:2011-09-09 17:12:18

标签: regex

我需要扩展此正则表达式以删除空格无特征。我们使用asp:RegularExpressionValidator进行ASP.NET验证,因此我不能在它们之间使用replace方法。

这是我的正则表达式:

  

\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

是代码

<asp:TextBox ID="tbBIEmailAddress" runat="server" CssClass="inpText" MaxLength="50" />

<asp:RequiredFieldValidator id="reqValBIEmail" runat="server" ControlToValidate="tbBIEmailAddress" Display="Dynamic" ValidationGroup="Checkout">*</asp:RequiredFieldValidator>

<asp:RegularExpressionValidator id="regValBIEmail" runat="server" ControlToValidate="tbBIEmailAddress" ValidationGroup="Checkout" ValidationExpression="\^w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$">*</asp:RegularExpressionValidator>

2 个答案:

答案 0 :(得分:0)

我知道.Net有可变数量的捕获缓冲区的概念 因此,例如,(asw[^p]+)*应创建一个捕获缓冲区1对象 将数据存储为数组。

但是,在这种情况下它不会如何反应:(?:([-.]\w+)|\s+)*
显然\s不在捕获缓冲区的范围内,不应包括在中 第1组捕获缓冲区对象数组。实际上剥离了白色空间 捕获过程。但我没有测试过这个。

我可能会错误地阅读您的问题而且据我所知,您正在使用捕获组进行分组。

<强>加入

您的样本可能有拼写错误 这:
"\^w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"
应该是这样的:
"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"

它可能解释你的太空问题,但可能不是。

答案 1 :(得分:0)

尝试以下正则表达式:

^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$