#USERはWORD1 WORD2 ユーザー "Javaの正規表現は、特定の文字列パターンを置き換えるために、私は同じ単語(省略#)</p> <p>例</p> <p>「単語1 WORD2での単語のセットを含む文字列に#で始まる単語を置き換えたい
」に置き換えるべき" 誰かが私を助けることができますか?
#USERはWORD1 WORD2 ユーザー "Javaの正規表現は、特定の文字列パターンを置き換えるために、私は同じ単語(省略#)</p> <p>例</p> <p>「単語1 WORD2での単語のセットを含む文字列に#で始まる単語を置き換えたい
」に置き換えるべき" 誰かが私を助けることができますか?
あなたは正規表現を使用することができます。
\S
は一つ以上の\S+
一つ以上の非空白文字+
任意の非空白文字を表します:正規表現で yourText = yourText.replaceAll("#(\\S+)", "$1");
で始めることができます
(\S+)
- かっこの作成グループcontaini一つ以上の非空白文字をngの、このグループは、交換に1
として索引付けされます交換で
$1
は、私たちは他ではグループ1のコンテンツを使用することができますそれは#non-whitespaces
(これはnon-whitespaces
部分で置き換えられます)を検索しようとします。
しかし、この解決策では、単語の先頭に#
は必要ありません。これを行うために、我々は#
前
\s
、文字列^
の実際に私たちの試合に何も含まれていないかどうかをテストするには、裏返し(?<=...)
を使用できます。
だから、私たちの最終的な解決策は
yourText = yourText.replaceAll("(?<=^|\\s)#(\\S+)", "$1");
。ありがとう。 –
@IsurangaPerera 1つの問題を解決するためにこの回答を更新しました。更新版を確認してください。 – Pshemo
String foo = "#user"
foo = foo.replaceAll("#", "");
のように見えることができますあなたは非常に明確なユースケースを持っていないが、コードの例と私の仮定:
最初のシンボルはの部分文字列を除きます function
パブリッククラスTestRegex {
public static void main(String[] args) {
String omitInStart = "#user";
String omitInMiddle = "#user";
String omitInEnd = "#user";
String omitFewSymbols = "#us#er";
List<String> listForOmit = Arrays.asList(omitInStart, omitInMiddle, omitInEnd, omitFewSymbols);
listForOmit.forEach(e -> System.out.println(omitWithReplace(e)));
listForOmit.forEach(e -> System.out.println(omitFirstSymbol(e)));
}
private static String omitFirstSymbol(String stringForOmit) {
return stringForOmit.substring(1);
}
private static String omitWithReplace(String stringForOmit) {
String symbolForOmit = "#";
return stringForOmit.replaceAll(symbolForOmit, "");
}
}
は '#のuser'様または' #USER #word #anotherWord ... 'のようなあなたの文字列に何かありますか? – SantiBailors
文字列に添付された#を削除したいだけですか? – sadlyblue