2017-05-02 10 views
0

テキスト内に繰り返しアラビア文字を挿入したい。 Javaでregexを使用してこれを行うにはどうすればよいですか?私は別の正規表現を試しましたが、それは私のテキストからすべてのアラビア語の文字を削除します!ヘルプPLZ。 はところで、私はそれを適用する方法hereregex-アラビア語テキストの繰り返し文字をStringToWordVectorフィルタで削除する

で起こって何のようなStringToWordVectorフィルタでこれを正規表現を使用しています: filter.setStopwordsHandler(new RegExStopwords("([^\\u1F600-\\u1F6FF\\s].*|[A-Za-z0-9].*|[٠-٩].*|[\\u0617-\\u061A\\u064B-\\u0652].*|[ؐ-ًؚٟ].*|[/(آ|إ|أ)/g, 'ا']|[/(ة)/g, 'ه']|[/(ئ|ؤ)/g, 'ء']|[/(ى)/g, 'ي']|[/([^\\u0621-\\u063A\\u0641-\\u064A\\u0660-\\u0669])/g, '']"));をだから私は.replaceAll()関数で述べた答えをしようとしたが、それは私と一緒に仕事、または実際に私はなかったですそれらを私のコードに正しく適合させる方法を知りませんでした。

+0

これは、文字列変数 '.replaceAll("(。)\\ 1 {1、} "、" $ 1 ")で私と一緒に働いたものですが、フィルタに適用する方法がわかりません。 –

答えて

0

私はより容易に(削除を繰り返すlで)heloを返すループ

String str = "hello" 

char prevChar = ' '; 
String result = ""; 
for(char ch : str.toCharArray()){ 
    if(ch != prevChar) 
     result += ""+ch //concat casts to string for us 
    prevChar = ch 
} 

を使用することになり

EDIT:

あなたは、フィルタを使用したい場合は、正しい正規表現は、

/(.)(?<=\1{2,})/ig

(.NETへrefiddleセットでテストされ、彼らは、Javaを持っていない)

  • 最初のグループ、(.)は、次のように次のグループ(?<=\1{2,})が故障した任意の文字
  • をキャプチャ:
    • \1は、最初のグループ((.))で指定された文字をキャプチャします。
    • {2,}は、 2回繰り返す
    • ?<=は、基本的に次の用語(\1)が存在するかどうかを確認したいと考えていますが、キャプチャしたくありません。

だから私たちは、あなたがより多くのヘルプについて

を望むものである、捕獲されただけ{2,}が残っている、してみてくださいこれらのスタックオーバーフローが

運が良かった!

+0

しかし、これをフィルターでどうやって使うことができますか?( –

+0

@Nour_emが答えに追加されました:)これが助けてくれることを願っています! –

+0

あなたの助けに感謝しますが、それは私と一緒にはうまくいかなかった:| |。私は間違った何かをしたのか分からない。私はregexesの残りの部分に対して何をしたかというだけで、この['' /(。)(?<= \ 1 {2、})/ ig] 'のように正規表現に' []手紙はまだ削除されていません! –

関連する問題