Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java正则表达式需要更多帮助_Java_Regex - Fatal编程技术网

Java正则表达式需要更多帮助

Java正则表达式需要更多帮助,java,regex,Java,Regex,我最近讨论了一个Java正则表达式,它将匹配一个最多包含两个星号的字符串,可以是第一个或最后一个字符,也可以是两个字符。这是我接受的答案: ^\\*?[^*]+\\*?$ 当然,需求现在已经改变,我需要进一步约束字符串,使其只能包含小写或大写字母、空格或星号通配符。不允许使用数字或标点符号(除了*)。通配符定位上的约束保持如上所述 因此,这些字符串将匹配: foo f oo *Foo FOO * *foo* *F o o* 福 f oo *福 福* *福* *F o o* 而这些字符串不会:

我最近讨论了一个Java正则表达式,它将匹配一个最多包含两个星号的字符串,可以是第一个或最后一个字符,也可以是两个字符。这是我接受的答案:

^\\*?[^*]+\\*?$
当然,需求现在已经改变,我需要进一步约束字符串,使其只能包含小写或大写字母、空格或星号通配符。不允许使用数字或标点符号(除了
*
)。通配符定位上的约束保持如上所述

因此,这些字符串将匹配:

foo f oo *Foo FOO * *foo* *F o o* 福 f oo *福 福* *福* *F o o* 而这些字符串不会:

* ** **foo *f*oo 1 *1 _ foo1* _foo %foo^ * ** **福 *f*oo 1. *1 _ foo1* _福 %福^ 我花了很长时间试图解决这个问题,但一直没能解决,甚至没有使用。我真的不喜欢问这样一个关于堆栈溢出的具体问题,但我自己无法找到解决方案

提前感谢。

这应该可以:

^\\*?[a-zA-Z ]+\\*?$

If regex必须匹配所有Unicode字母:
^\*?[\p{L}]+\*?$

谢谢,但出于某种原因,它似乎匹配下划线。@John Topley:
-
是连字符。检查你的正则表达式。@johntopley,别这么认为-你能给我一个答案吗example@Peter伊万诺夫问题在于,在编辑答案之前,我复制并粘贴了带有小写字母
z
typo的正则表达式!好了,谢谢。该死,我肯定我已经试过你的答案了!