所以这是我的代码的一部分:
if (file.toString().??? && file.toString().endsWith(FilterCommand.afterDot)) {
System.out.println(file.toAbsolutePath());
用户将输入字符串,类似于此(somet ext.txt只是一个输入的示例,用户将输入几次,每次它可以是不同的东西):somet ext.txt我的工作是找到与给定表达式匹配的所有文件。在这个例子中,它可能是这样的:
sometext.txt
sometHhBkJnKext.txt
sometANYTHINGCANBEHEREext.txt
所以"某些"和" ext.txt"保持不变。他们之间可以有任何东西。我是指0个或更多字符。我们还可以假设用户永远不会输入两个*。它总是一个*,它可以在前面,中间或最后。
我能够在dot之前将字符串上的给定字符串分开(somet * ext,我将其保存在变量FilterCommand.beforeDot
中)和点之后(txt,我将其保存在变量FilterCommand.afterDot
中)。所以,如果我需要询问点后的文本是否相同(我使用:file.toString().endsWith(FilterCommand.afterDot)
并且如果点之前的文本匹配给定表达式。我该怎么做?
答案 0 :(得分:2)
所以我认为你可以做这样的事情 -
public static void main(String args[]) {
String regexFilePattern = "[[a-zA-Z0-9]+]\\.[[a-zA-Z0-9]+]";
Matcher matcher = null;
for(int i = 0; i < args.length; i++) {
matcher = Pattern.compile(regexFilePattern).matcher(args[i]);
while (matcher.find()) {
if (matcher.start() > 0) {
//there is a match!
//manipulate the result here when the text after the dot
//matches the text before the dot
}
}
}
}
答案 1 :(得分:1)
您可以这样检查(这也会匹配.txt
,因此无需拆分文件名):
public static void main(String[] args) {
if(Pattern.matches("somet.*ext\\.txt", "somet**HhBkJnK**ext.txt"))
{
System.out.println("Yes");
}
else
{
System.out.println("No");
}
if(Pattern.matches("somet.*ext\\.txt", "sometext.txt"))
{
System.out.println("Yes");
}
else
{
System.out.println("No");
}
if(Pattern.matches("somet.*ext\\.txt", "some**sdfsdfsdft**ex.txt"))
{
System.out.println("Yes");
}
else
{
System.out.println("No");
}
}
输出:
是
是
没有
请执行此操作以查看您的文件:
if(Pattern.matches("somet.*ext\\.txt", file.toString()))
{
System.out.println("Yes");
}
else
{
System.out.println("No");
}
答案 2 :(得分:0)
首先,你需要逃避点,即\。否则正则表达式解析器会将点解释为“查找单个字符,任何字符”。
例如:
Lib.current.stage.addEventListener(openfl.events.KeyboardEvent.KEY_UP, checkKeypress);
...
private function checkKeypress(e:openfl.events.KeyboardEvent):Void
{
switch (e.keyCode)
{
case openfl.ui.Keyboard.ESCAPE:
e.stopImmediatePropagation();
restartLevel();
}
}
private function restartLevel():Void
{
//your code to restart level here
}
答案 3 :(得分:-1)
我不确定为什么你需要拆分用户在&#39;。&#39;处提供的字符串。看起来你可以写file.toString().matches(userString)
来确定该文件是否与提供的模式匹配