場合によっては、文字列内の1つまたは複数の単語を削除する必要があります。たとえば、私の文字列はincabcincdefinc inc. inc
です。このために、との両方を削除する必要がinc.
ありinc
ます。つまり、出力はである必要がありますincabcincdefinc
。inc
つまり、次の条件に従ってすべてを削除します。
<space>inc<space>
<space>inc<.>
<space>inc<end string>
<space>inc
場合によっては、文字列内の1つまたは複数の単語を削除する必要があります。たとえば、私の文字列はincabcincdefinc inc. inc
です。このために、との両方を削除する必要がinc.
ありinc
ます。つまり、出力はである必要がありますincabcincdefinc
。inc
つまり、次の条件に従ってすべてを削除します。
<space>inc<space>
<space>inc<.>
<space>inc<end string>
<space>inc
あなたはおそらくこのようなもので逃げることができます:
str = str.replaceAll("[ ](?:inc|ltd|corp)\\b\\.?", "");
角かっこは、間にあるスペース文字をより見やすくするためにのみ使用されます。スペースが保持されている限り、省略できます。\\b
あなたの条件は、事業体の拡張の後に単語の境界()があると主張することによって満たされます。これは、次に来る文字、数字、またはアンダースコアがないことを意味します(これはすべての条件をキャプチャします)。次に、パターンはリテラルピリオド()も含めようとしますが、(\\.
)がないかどうかは関係ありません?
。すべてが空の文字列に置き換えられます。最初の条件では、スペースが一致して削除されないことに注意してください。スペースがにSomeCompany inc inc
なりSomeCompanyinc
ます。
大文字と小文字を区別せずに拡張機能を探したい場合は、より長い構文を使用する必要があります。
Pattern pattern = Pattern.compile(
"[ ](?:inc|ltd|corp)\\b\\.?",
Pattern.CASE_INSENSITIVE
);
Matcher matcher = pattern.matcher(str);
str = matcher.replaceAll("");