Java regex case insensitivity not working

前端 未结 3 482
谎友^
谎友^ 2020-12-31 15:21

I\'m trying to remove some words in a string using regex using below program. Its removing properly but its considering only case sensitive. How to make it as case insensiti

3条回答
  •  一生所求
    2020-12-31 15:53

    You need to place the (?i) before the part of the pattern that you want to make case insensitive:

    System.out.print(sample.replaceAll("(?i)\\b(?:is|the|in|any)\\b"," "));
                                        ^^^^
    

    See it

    I've replaced spaces around the keywords to be removed with word boundary (\\b). The problem comes because there may be two keywords one after another separated by just one space.

    If you want to delete the keywords only if they are surrounded by space, then you can use positive lookahead and lookbehind as:

    (?i)(?<= )(is|the|in|any)(?= )
    

    See it

提交回复
热议问题