【问题标题】:What is the regex for a string that has no pipe (|) character?没有竖线 (|) 字符的字符串的正则表达式是什么?
【发布时间】:2012-07-21 12:18:33
【问题描述】:

不应该包含竖线 (|) 字符的字符串的正则表达式是什么?例如,“这是一个示例 |”带有管道字符的字符串。

【问题讨论】:

  • [^|]*
  • @Jithin:您拒绝空字符串,这是有效的。
  • @nhahtdh 是的,谢谢你的通知..

标签: regex


【解决方案1】:

使用否定的character class

\A[^|]*\z

说明:

\A    # Start of string
[^|]* # Match zero or more characters except |
\z    # End of string

【讨论】:

  • 谢谢!像魅力一样工作!
【解决方案2】:

通常,您不需要正则表达式来确定字符串中是否包含字符。

您没有指定语言;例如在 Perl 中,您可以使用 tr 运算符:

if( $string !~ tr/|// ) {
   ...

或者你可以只查找字符并检查其index(如果不存在则为-1):

if( index($string, '|') == -1 )
   ...

其他语言肯定有类似的语言结构(VB.NETJavaSQLMatlabC++ 等)。

【讨论】:

  • 是的,正则表达式不适合这个任务。
【解决方案3】:

如果您想问的是:什么是正则表达式来匹配没有管道符号的行,那么:答案是:^[^|]*$

匹配一整行零个或多个非|的字符

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    相关资源
    最近更新 更多