2017年3月29日水曜日

[実装メモ]Javaにおける正規表現確かめようプログラムとアホな自分のメモ

Javaで正規表現を使うには,PatternクラスとMatcherクラスを使うと良い.
importするのは,java.util.regexクラスのPatternとMatcherの2つ.

実装中のシステムでは,行単位でjavaのソースコードがどんな命令か知りたいのでそのための正規表現を作成中.

以前はString.matchesで適当にやっていたが,上記クラスを使ってしっかりやろうということで改装中である.

コードは以下のもの.

import java.util.regex.Pattern;
import java.util.regex.Matcher;


public class regex{

    public static void main(String[] argv){
        String typePattern = "(int|String|double|float)"; //必要なものを適宜増やす
        String testregex=".*\\((("+typePattern+"\\s\\w*)(,"+typePattern+"\\s\\w*)*)*\\)\\{?";
        String teststr="public static void sum(String str,int max)";
        String teststr2="sum(a,b,c);";

        Pattern p = Pattern.compile(testregex);

        Matcher m = p.matcher(teststr);

        System.out.println("regex:" + testregex);
        System.out.println("String:" + teststr);
        System.out.println();
        System.out.println(m.matches());
        System.out.println(m.group());

    }

}

今更こんな正規表現を確認しながら苦労してるアホな自分の戒めメモ

----
Regular expression to match Java method definition first lineとか書いておいたら海外からも参照される可能性あがるんでしょうか?

2017年3月19日日曜日

[実装メモ] JavaFXのtextareaで文字をドラッグした際に背景色がつかないようにしたい場合

現在実装中のシステムでtextareaでドラッグしたときに文字の背景色が変わってほしくない場面が出たのでそれの対応策のメモ.

これを流用すると,ドラッグ時の文字の色と背景色が変えられます.

#linearea:focused{
 -fx-highlight-text-fill: black;
 -fx-highlight-fill: null;
}


#lineareaはtextareaのid
:focusedはそのエリアが選択状態のときのルールを記述しているというオプション
-fx-highlight-text-fillがドラッグ時の文字の色
-fx-highlight-fillがドラッグ時の背景の色

上の例では,ドラッグ時文字が黒,背景色がなしの設定になっています.



自前のテキストエディタなど作ってみたい人はぜひご参考にしてください.