我需要一个正则表达式,不会让某人继续查看单词'box'或'Box'或'BOX'中的类型后跟数字。为了实现这一点,必须满足这两个条件,单词框和数字不是一个或另一个。有谁知道怎么写这个?
编辑:
嘿伙计们,我已经尝试了一些,问题是它阻止了常规地址,如1234 S. Something Lane。我想要阻止的是用户输入类似p.o的内容。方框1234.我们用“盒子”这个词来形容任何东西,不应该接受它之后的数字。
感谢
答案 0 :(得分:6)
在澄清问题后编辑:
new Regex(@"\bbox\s*\d+", RegexOptions.IgnoreCase);
这将使“box”单独匹配,在输入字符串中的任何位置可选地后跟空格,后跟数字。所以它会匹配:
不匹配:
(如果您的原始问题已经解释了您实际上要做的事情,那将会非常有用!)
答案 1 :(得分:5)
(box|Box|BOX)[0-9]+
澄清问题后编辑:
我猜你真的想要一个不区分大小写的搜索:
box\s*\d+
\s*
:任意数量的空白\d
+ :至少一个号码如果需要,您可以定义位数。 3-5位数的示例:
box\s*\d{3,5}
答案 2 :(得分:0)
至少根据我的经验,编写一个RegEx以更严格地匹配预期案例更容易,而不是试图排除特殊情况。
答案 3 :(得分:0)
如果您展示了您希望接受的格式示例,则人们可以更轻松地回答此问题。
如果您想要使用“Box”的任何变体为字符串添加前缀,然后使用数字,那么这样的东西应该有用(确保使用RegexOptions.IgnoreCase)
^box\d+$
哪个匹配...
box1
BOX1234567
bOx3
...etc...
答案 4 :(得分:0)
/box\d+/
加上IgnoreCase?
答案 5 :(得分:0)
这个:
box|Box|BOX\d+
将匹配这些特定情况框,Box,BOX以及所有这些后跟数字,但在这种情况下它也将返回true,例如:
asBox123asdasd
如果你希望如果字符串恰好是box123,那么你应该使用:
^box|Box|BOX\d+$
代替
答案 6 :(得分:0)
不要忘记“邮局”选项。
^(p(ost |。)* o(ffice |。))?box * [0-9] + $