【问题标题】:Regular expression for word and character like ({}[]^) not allowed anywhere in string字符串中的任何位置都不允许使用 ({}[]^) 等单词和字符的正则表达式
【发布时间】:2013-12-20 05:42:33
【问题描述】:

我想要time 单词和[]{}^ 的正则表达式,那些字符串格式不允许在字符串中。

喜欢,

testtime -> allowed
tim etest -> allowed
thetimetest -> allowed
the time test -> not allowed
test[my -> not allowed
my}test -> not allowed
test^time -> not allowed

我为字符串中不允许的单词开发下面的正则表达式。但他们无法在c# 中检查是否区分大小写。

   ^((?!Time)[^[\]{}])*$

【问题讨论】:

    标签: c# regex


    【解决方案1】:

    您可以像这样使用负前瞻:

    ^(?!.*time)[^.]*$
    

    regex101 demo


    编辑:根据更新,您可以使用此正则表达式:

    ^(?!.*\btime\b)[^.^\[\]{}]*$
    

    regex101 demo

    至于不区分大小写,您可以使用标志RegexOptions.IgnoreCase 或在正则表达式中使用(?i),例如(?i)^(?!.*\btime\b)[^.^\[\]{}]*$

    【讨论】:

    • 您好,我编辑了我的问题,请检查一下。
    • @JeetBhatt 已编辑答案。
    • 我想在 asp.net 正则表达式控件中使用这个正则表达式 '(?i)^(?!.*\btime\b)[^.^[]{}]*$'但他们不能开火。
    • @JeetBhatt 这是一个demo,其中有两个要测试的字符串。只有第一个匹配。
    【解决方案2】:

    试试这个:

    ^((?!time)[^.])*$
    

    虽然一对 String.contains 结合布尔逻辑可能会更清晰、更高效。

    【讨论】:

    • 您好,我编辑了我的问题,请检查一下。
    • @JeetBhatt,我不确定你想要什么。这是区分大小写的。如果您想要不区分大小写,请将(?i) 放在正则表达式的开头,每stackoverflow.com/questions/2439965/…
    • 我用过这个,但是在asp.net正则表达式验证控件中还是不行。
    【解决方案3】:

    假设您想要一个不包含 time... 的字符串,正则表达式将是

    ^(?!.*time)(?!.*[.]).*$
    

    【讨论】:

    • 您好,我编辑了我的问题,请检查一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 2021-11-11
    • 1970-01-01
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多