What is the regular expression for a string that should not contain a pipe (|) character? e.g., "this is an example |" of a string with a pipe character.
Asked
Active
Viewed 5,858 times
3 Answers
5
Use a negated character class:
\A[^|]*\z
Explanation:
\A # Start of string
[^|]* # Match zero or more characters except |
\z # End of string

Tim Pietzcker
- 328,213
- 58
- 503
- 561
2
Normally, you don't need a regex to find out if a character is included in a string or not.
You didn't specify a language; e.g. in Perl, you could use the tr
operator:
if( $string !~ tr/|// ) {
...
or you could just look up the character and check its index
(-1 if not there):
if( index($string, '|') == -1 )
...
Other languages surely have comparable language constructs (VB.NET, Java, SQL, Matlab, C++ etc.).

Community
- 1
- 1

rubber boots
- 14,924
- 5
- 33
- 44
0
If what you wanted to ask is: what is a regex to match a line that haven't got the pipe symbol then: the answer is: ^[^|]*$
That is match an entire line of zero or more characters that are not |

Chen Levy
- 15,438
- 17
- 74
- 92