Find the occurrence of backslash in a string

后端 未结 3 1202
無奈伤痛
無奈伤痛 2021-01-25 05:28

If my string is : aud\\ios, how do i check it out for the presence of \\ in it?

I tried using preg_match(\'\\\\\' , $string) but

3条回答
  •  臣服心动
    2021-01-25 05:40

    For something simple as this, you don't need a regular expression. A string function like strpos() should be enough:

    if (strpos('aud\ios', '\\') !== FALSE) {
        // String contains '\'
    }
    

    Note that you need to escape the backslash here. If you simply write \, then PHP considers it as an escape sequence and tries to escape the character that follows. To avoid this, you need to escape the escape using another backslash: \\.

    As for matching a literal backslash using a preg_* function, you'll need to use \\\\ instead of a single \.

    From the PHP manual documentation on Escape Sequences:

    Single and double quoted PHP strings have special meaning of backslash. Thus if \ has to be matched with a regular expression \\, then "\\\\" or '\\\\' must be used in PHP code.

    So your code would look like:

    preg_match('/\\\\/', $string); // Don't use this though
    

    where:

    • / - starting delimiter
    • \\\\ - matches a single literal \
    • / - ending delimiter

    For additional information about this, see:

    • How to properly escape a backslash to match a literal backslash in single-quoted and double-quoted PHP regex patterns

提交回复
热议问题