【问题标题】:Regular expression lookhead lookbehind正则表达式前瞻后瞻
【发布时间】:2015-09-13 05:01:30
【问题描述】:

我需要一些关于 .NET 正则表达式的帮助,我有一个电话号码输入字段。

我使用正则表达式将值 (050 33 11 00) 格式化为这种格式:

+32(0)50/33.11.00

但是当我插入以下值 09 323 23 56 时,我想得到以下结果:

+32(0)9/323.23.56

我一直在寻找lookahead,但找不到可行的解决方案。

我正在使用以下正则表达式:(\x2B{1}3{1}2{1}\x28{1}\d{1}\x29{1}\d{2}\/\d{2}\.\d{2}\.\d{2}),它适用于第一个值。

正则表达式作为editMask放置在文本框上,所以我想要即时实时消毒。

textEdit.Mask.EditMask = editMask;

【问题讨论】:

    标签: .net regex devexpress expression lookahead


    【解决方案1】:

    您可以使用以下替换:

    \b0(\d{1,2})\s+(\d{2,3})\s+(\d{2})\s+(\d{2})\b
    

    此正则表达式将匹配以 0 开头的完整“单词”,后跟 1 或 2 位数字,然后是空格、2 或 3 位数字、空格、2 位数字,然后是空格和 2 位数字。

    替换为+32(0)$1/$2.$3.$4

    demo

    【讨论】:

    • 这不是我正在寻找的解决方案,我想创建一个正则表达式,可以用作文本框的掩码。
    • 为了获得适当和及时的帮助,请说明您想要什么。目前,我的答案非常适合Leave(或元素失去焦点时调用的任何内容)事件上的文本框验证。如果您的意思是实时消毒,那就不同了。请具体并更新您的问题。我建议发布代码以便更好地理解。
    猜你喜欢
    • 2021-10-11
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多