私は私のJavaプロジェクトに問題がある、私はマッチの組み合わせを追加しなかった、私は辞書と混在している、辞書は普通の言葉であり、 dicで= "mouse" mixed = "usemo"それらは同じ単語です、私はしたいです。私は混合usmoプログラムで辞書に行き、4文字は辞書で同じですので、単語はマウスです、またはmixed = "usem "辞書は"マウス "を変更することができます、私は正規表現でこれを可能にすることができます検索しますが、私はこれを行う方法については考えていない誰も私を助けることができます??どのように私はJavaの正規表現を行うことができますか? 2-3文字を一致させる?
答えて
ここでは、正規表現を使用して検索したパターンと一致し、一致する結果を辞書から出力する実行コードを示します。
public class RegexTestStrings {
private static HashSet<String> dictionarySet = new HashSet<String>();
private static HashSet<String> regExSetSet = new HashSet<String>();
public static void main(String[] args) {
dictionarySet.add("mouse");
dictionarySet.add("tiger");
dictionarySet.add("monkey");
RegexTestStrings regexTestStrings=new RegexTestStrings();
System.out.println(regexTestStrings.fidMatchingWord(dictionarySet,"usemo"));
System.out.println(regexTestStrings.fidMatchingWord(dictionarySet,"usem"));
System.out.println(regexTestStrings.fidMatchingWord(dictionarySet,"usmo"));
System.out.println(regexTestStrings.fidMatchingWord(dictionarySet,"kmoy"));
}
private String fidMatchingWord(HashSet<String> dictionarySet2, String searchWord) {
String result=null;
Iterator<String> dictionarIterator=dictionarySet.iterator();
while(dictionarIterator.hasNext()){
regExSetSet.clear();
String inputString=dictionarIterator.next();
findAllRegEx(inputString.toCharArray(), 0, inputString.length()-1);
Iterator<String> resultIterator=regExSetSet.iterator();
// Regular expression to match the pattern of search string
String pattern = "(?s)^(" + Pattern.quote(searchWord) + ".*$|.*" + Pattern.quote(searchWord) + ")$";
while(resultIterator.hasNext()){
String str=resultIterator.next();
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(str);
boolean b = m.matches();
if(b){
result=inputString;
break;
}
}
}
return result;
}
public static void findAllRegEx(char[] ary, int startIndex, int endIndex) {
if(startIndex == endIndex){
regExSetSet.add(String.valueOf(ary));
}else{
for(int i=startIndex;i<=endIndex;i++) {
swap(ary, startIndex, i);
findAllRegEx(ary, startIndex+1, endIndex);
swap(ary, startIndex, i);
}
}
}
public static void swap(char[] arr, int x, int y) {
char temp = ary[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
Output
______________
mouse
mouse
mouse
monkey
ıこれを試しましたが、同じような機能はありますか?私のプログラムはこれほど短いわけではないので、たくさんの単語のインミープログラムがあります。 –
私は3文字が大丈夫、辞書からの変更は同等であることを意味します。 –
@FurkanKesgin、もしあなたがSQLの 'like'関数を探しているのであれば、Javaの'。* 'は上記でパターンの中で使ったREGEXの文字と一致します。あなたの要件をサポートするために上記のプログラムを修正しなければなりません。私は答えがあなたが最初に尋ねた質問を満足させていると信じています。あなたが別の問題に直面しているなら、新しい質問を作成して問題を説明してください。 – utpal416
- 1. このテキストを正規表現とどのように一致させることができますか?
- 2. 特定のトップレベルドメインを正規表現とどのように一致させることができますか?
- 3. IPv6アドレスとPerl正規表現をどのように一致させることができますか?
- 4. 正規表現とjavascriptのGoogle検索訂正文字列をどのように一致させるか
- 5. 正規表現 - どのように2つの文字が一致する(MySql)
- 6. 正規表現とセレンのURLをどのように一致させるか?
- 7. 正規表現: "\ n"(改行)を含む文字列をどのように一致させるか?
- 8. 正規表現で文字列をHTMLに一致させる
- 9. Java正規表現:前の文字に基づいて文字を一致させよう
- 10. Java文字列の部分文字列が正規表現と一致するかどうかを調べるにはどうすればよいですか?
- 11. これらのテキスト行を正規表現でどのように一致させるのですか?
- 12. アスタリスクと文字列を一致させる正規表現
- 13. この正規表現がhtaccessでどのように一致するか
- 14. %の間の文字列を一致させる正規表現%
- 15. Java正規表現で\ Qと\ Eをどのように一致させるのですか?
- 16. 正規表現でタグ間のテキストを一致させよう
- 17. 文字列または正規表現のリテラルにない正規表現と一致する正規表現
- 18. オプションの文字列正規表現を一致させる
- 19. 複数の文字列を一致させる正規表現
- 20. 正規表現でJS文字列を一致させる
- 21. 正規表現で文字列全体を一致させる
- 22. 正規表現数字とプリセットのない単語をどのように一致させるのですか?
- 23. 正規表現とsedを一致させることができません
- 24. 1つの改行に一致する正規表現。正規表現をダブル改行に一致させる
- 25. 正規表現とpython正規表現を使って正確に1桁の数字を一致させるにはどうすればよいですか?
- 26. Javaでキャプチャグループと逆参照を持つこの正規表現はどのように一致しますか?
- 27. どのように文字が一致するか、正規表現を使用しないでください
- 28. 正規表現文字列が一致?
- 29. 特定の文字列と正規表現をどのように一致させることができますか?
- 30. 正規表現のURLを一致させる正規表現
はい、先読みでこれを行うことができます。 –