【问题标题】:validate empty variable regex验证空变量正则表达式
【发布时间】:2014-12-15 09:43:14
【问题描述】:

我有一个正则表达式 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();

感谢您的帮助

【问题讨论】:

  • 为什么不只检查空字符串,然后对非空字符串应用正则表达式检查?
  • 代码包含在验证器中,在软件 BonitaBPM 中。我不能(或者我不知道该怎么做)验证器内的循环。我已经尝试过,但没有成功。这就是我尝试在正则表达式代码中完成所有需要的原因。

标签: java regex variables string


【解决方案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))\$)";

【讨论】:

  • 我忘了说我把这段代码放在了一个 groovy 脚本上......如果它可以帮助的话,放在 bonitaBPM 软件中
【解决方案2】:

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

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

? 最后将使整个正则表达式匹配可选,因此也允许它匹配""

【讨论】:

    【解决方案3】:

    只需在您的正则表达式前面添加^$|

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-07
      • 2011-02-20
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多