验证空变量正则表达式

时间:2014-12-15 09:43:14

标签: java regex variables string

我有一个正则表达式scipt,用于验证某些扩展的字段变量(pdf,doc,jpeg,jpg和png)。但有时候,这个字段可能是空的。我在一些话题上看到" ^ $"可以解决我的问题。我尝试了很多组合(因为我不知道正则表达式),但它不起作用。我给你我现在的代码:

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

String REGEX = "([^#@]+(\\.(?i)(pdf|doc|docx|jpeg|mp3|jpg|png))\$)";
Pattern pattern = Pattern.compile(REGEX);
Matcher matcher = pattern.matcher(field_Fichier1.getFileName());
return matcher.matches();

感谢您的帮助

3 个答案:

答案 0 :(得分:1)

// Mine = doesn't work for empty field
//String REGEX = "([^#@]+(\\.(?i)(pdf|doc|docx|jpeg|mp3|jpg|png))\$)";

// Anubhava = doesn't work for empty field
//String REGEX = "([^#@]+(\\.(?i)(pdf|doc|docx|jpeg|mp3|jpg|png)))?";
//        or
//String REGEX = "([^#@]+(\\.(?i)(pdf|doc|docx|jpeg|mp3|jpg|png)))";

// Bohemian = can't be run = error: "Groovy:illegal string body character after dollar sign;"
String REGEX = "^$|([^#@]+(\\.(?i)(pdf|doc|docx|jpeg|mp3|jpg|png))\$)";

答案 1 :(得分:0)

为什么你的正则表达式中有\$。您可以将整个正则表达式设为可选,以允许空字符串匹配:

String REGEX = "([^#@]+(\\.(?i)(pdf|doc|docx|jpeg|mp3|jpg|png)))?";

?最终将使整个正则表达式匹配为可选,从而允许它与""匹配。

答案 2 :(得分:0)

只需将^$|添加到正则表达式的前面:

String REGEX = "^$|([^#@]+(\\.(?i)(pdf|doc|docx|jpeg|mp3|jpg|png))\$)";

请注意,我还没有检查过现有的正则表达式 - 我假设它适用于非空白输入。