Javafx 仅允许不带正则表达式的西欧名称/字符

Javafx 仅允许不带正则表达式的西欧名称/字符,javafx,filter,Javafx,Filter,这是我的过滤器: public class FilterName implements UnaryOperator<TextFormatter.Change> { @Override public TextFormatter.Change apply(TextFormatter.Change tfc) { String eingabe = tfc.getText(); for (int i = 0; i < eingabe.le

这是我的过滤器:

public class FilterName implements UnaryOperator<TextFormatter.Change> {

    @Override
    public TextFormatter.Change apply(TextFormatter.Change tfc) {
        String eingabe = tfc.getText();
        for (int i = 0; i < eingabe.length(); i++) {
            char c = eingabe.charAt(i);
            if (!(Character.isAlphabetic(c) || c == ' ' || c == '-')) {
                Toolkit.getDefaultToolkit().beep();
                return null;
            }
        }
        return tfc;
    }
}
公共类过滤器名称实现了一元运算符{
@凌驾
公共TextFormatter.Change应用(TextFormatter.Change tfc){
字符串eingabe=tfc.getText();
对于(int i=0;i
我使用这个过滤器只过滤字符。但我只想允许使用西欧名字。用regex做这件事真的很难,我想避免。这里的问题是,这个解决方案还允许非欧洲字符,如汉字或平假名等。有没有一种方法,我只能允许西欧名称/字符这样的

编辑:这是我想要允许的正则表达式:^[-.a-zA-Z0-9'1929'195'198'20020'2036'208;勝ÕÕÕØØØØØØØØØØÔÔÔÔØÔÔØØÔØÔØØØØØÔØÔØØ21*$