3

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

4

3 回答 3

5

使用否定字符类

\A[^|]*\z

解释:

\A    # Start of string
[^|]* # Match zero or more characters except |
\z    # End of string
于 2012-07-23T09:17:54.023 回答
2

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

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

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

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

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

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

于 2012-07-23T09:24:08.730 回答
0

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

那是匹配零个或多个字符的整行|

于 2012-07-23T09:19:42.493 回答