diff --git a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/Bundle.properties-MERGED b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/Bundle.properties-MERGED
index 74b5e13e9d..506674aa5b 100755
--- a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/Bundle.properties-MERGED
+++ b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/Bundle.properties-MERGED
@@ -36,6 +36,8 @@ FilesSetPanel.ingest.createNewFilter=Create/edit file ingest filters...
FilesSetPanel.ingest.messages.filtersMustBeNamed=File ingest filters must be named.
FilesSetPanel.rule.title=File Filter Rule
FilesSetRulePanel.bytes=Bytes
+#{0} - regex
+FilesSetRulePanel.CommaInRegexWarning=Warning: Comma(s) in the file extension field will be interpreted as part of a regex and will not split the entry into multiple extensions (Entered: "{0}")
FilesSetRulePanel.DaysIncludedEmptyError=Number of days included cannot be empty.
FilesSetRulePanel.DaysIncludedInvalidError=Number of days included must be a positive integer.
FilesSetRulePanel.gigaBytes=Gigabytes
diff --git a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetDefsPanel.form b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetDefsPanel.form
index 416aad285c..7497f936bb 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetDefsPanel.form
+++ b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetDefsPanel.form
@@ -832,6 +832,7 @@
+
diff --git a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetDefsPanel.java b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetDefsPanel.java
index 25db05decb..5ff9d2a172 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetDefsPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetDefsPanel.java
@@ -811,6 +811,7 @@ public final class FilesSetDefsPanel extends IngestModuleGlobalSettingsPanel imp
org.openide.awt.Mnemonics.setLocalizedText(jLabel7, org.openide.util.NbBundle.getMessage(FilesSetDefsPanel.class, "FilesSetDefsPanel.jLabel7.text")); // NOI18N
mimeTypeComboBox.setBackground(new java.awt.Color(240, 240, 240));
+ mimeTypeComboBox.setEditable(true);
mimeTypeComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] {""}));
mimeTypeComboBox.setEnabled(false);
mimeTypeComboBox.setMinimumSize(new java.awt.Dimension(0, 20));
diff --git a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetRulePanel.java b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetRulePanel.java
index 9744b0c5bf..90cc881ad8 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetRulePanel.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetRulePanel.java
@@ -57,7 +57,9 @@ final class FilesSetRulePanel extends javax.swing.JPanel {
"FilesSetRulePanel.NoPathError=Path cannot be empty",
"FilesSetRulePanel.DaysIncludedEmptyError=Number of days included cannot be empty.",
"FilesSetRulePanel.DaysIncludedInvalidError=Number of days included must be a positive integer.",
- "FilesSetRulePanel.ZeroFileSizeError=File size condition value must not be 0 (Unless = is selected)."
+ "FilesSetRulePanel.ZeroFileSizeError=File size condition value must not be 0 (Unless = is selected).",
+ "#{0} - regex",
+ "FilesSetRulePanel.CommaInRegexWarning=Warning: Comma(s) in the file extension field will be interpreted as part of a regex and will not split the entry into multiple extensions (Entered: \"{0}\")",
})
private static final long serialVersionUID = 1L;
@@ -130,6 +132,7 @@ final class FilesSetRulePanel extends javax.swing.JPanel {
this.setButtons(okButton, cancelButton);
updateNameTextFieldPrompt();
+ setComponentsForSearchType();
}
/**
@@ -358,6 +361,16 @@ final class FilesSetRulePanel extends javax.swing.JPanel {
return false;
}
if (this.nameRegexCheckbox.isSelected()) {
+
+ // If extension is also selected and the regex contains a comma, display a warning
+ // since it is unclear whether the comma is part of a regex or is separating extensions.
+ if (this.extensionRadioButton.isSelected() && this.nameTextField.getText().contains(",")) {
+ NotifyDescriptor notifyDesc = new NotifyDescriptor.Message(
+ Bundle.FilesSetRulePanel_CommaInRegexWarning(this.nameTextField.getText()),
+ NotifyDescriptor.WARNING_MESSAGE);
+ DialogDisplayer.getDefault().notify(notifyDesc);
+ }
+
try {
Pattern.compile(this.nameTextField.getText());
} catch (PatternSyntaxException ex) {
diff --git a/docs/doxygen-user/interesting_files.dox b/docs/doxygen-user/interesting_files.dox
index 080b1072af..7e4147a66f 100644
--- a/docs/doxygen-user/interesting_files.dox
+++ b/docs/doxygen-user/interesting_files.dox
@@ -42,7 +42,7 @@ The top line allows you to choose whether you want to match only files, only dir
Each rule must have at least one condition. To create conditions, check the box to the left of the condition you want to enable. The following is a description of each condition, with some full examples after.
-- Name - Enter either the full file name or one or more extensions, and select whether this is an exact match or a substring/regex match. If substring/regex match is enabled, it will automatically add wildcards to the beginning and end of the text. If you're only matching directories, this will match the directory name. If you're using a comma-separated list of extensions, make sure the regex checkbox is disabled - the two features do not work together. The following table shows some examples of what the different combinations can be used for.
+
- Name - Enter either the full file name or one or more extensions, and select whether this is an exact match or a substring/regex match. If substring/regex match is enabled, it will automatically add wildcards to the beginning and end of the text. If you're only matching directories, this will match the directory name. If you're using a comma-separated list of extensions, make sure the regex checkbox is disabled - the entire contents will be interpreted as one regex when the checkbox is selected. The following table shows some examples of what the different combinations can be used for.
| Type | Substring/Regex | Text | Description | Sample match |