【问题标题】:Regular expression for a search string needed需要搜索字符串的正则表达式
【发布时间】:2020-06-23 08:19:50
【问题描述】:

我需要一个用于 .NET 中的字母数字字符串的正则表达式,仅在字符串的开头或 / 和结尾处带有可选的星号。不在字符串的中间。

例子:

Ab123Zr5M => Match
*Ab123Zr5M => Match 
Ab123Zr5M* => Match
*Ab12*3Zr5M => No Match
Ab12*3Zr5M => No Match
Ab12*3Zr5M* => No Match

这是我所拥有的,但 id 似乎不起作用。

"^[a-zA-Z0-9\\*]+[a-zA-Z0-9]+[0-9a-zA-Z\\*]$"

【问题讨论】:

    标签: c# .net regex


    【解决方案1】:

    在字符类 [a-zA-Z0-9\\*]+ 中使用星号(请注意,您不必转义它,现在它也将匹配反斜杠)允许它匹配任何列出的 1 次以上。

    您可以在左侧或右侧进行匹配:

    ^(?:\*[a-zA-Z0-9]+|[a-zA-Z0-9]+\*?)$
    

    Regex demo

    如果它们也可以在两边:

    ^\*?[a-zA-Z0-9]+\*?$
    

    Regex demo

    【讨论】:

    • 这似乎工作到目前为止,太棒了!我怎么能添加只有一个(!)星号的匹配案例? * => 匹配
    • @C4RL0 有多种方法可以做到这一点 regex101.com/r/SjPMj3/1 ^(?:\*[a-zA-Z0-9]+|[a-zA-Z0-9]+\*?|\*)$^(?:\*?[a-zA-Z0-9]+\*?|\*)$ regex101.com/r/4tfy2o/1
    • 非常感谢,最后一个例子正是我需要的
    猜你喜欢
    • 2019-09-25
    • 1970-01-01
    • 2011-07-28
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-05
    • 2011-12-22
    相关资源
    最近更新 更多