diff --git a/modules/data.eval.inc b/modules/data.eval.inc
index 860e46e..6100f39 100644
--- a/modules/data.eval.inc
+++ b/modules/data.eval.inc
@@ -76,6 +76,17 @@ function rules_action_data_calc($input1, $op, $input2, $settings, $state, $eleme
 }
 
 /**
+ * Action: Regular expression.
+ */
+function rules_action_data_regex($string, $expression, $settings, $state, $element) {
+  $matches = array();
+  $result = preg_match('/'. str_replace('/', '\\/', $expression) .'/', $string, $matches);
+  $result = $matches[0];
+  return array('result' => $result);
+}
+
+
+/**
  * Info alter callback for the data_calc action.
  */
 function rules_action_data_calc_info_alter(&$element_info, RulesPlugin $element) {
@@ -318,4 +329,4 @@ function rules_data_text_comparison($text, $text2, $op = 'contains') {
     case 'regex':
      return (bool) preg_match('/'. str_replace('/', '\\/', $text2) .'/', $text);
   }
-}
+}
\ No newline at end of file
diff --git a/modules/data.rules.inc b/modules/data.rules.inc
index 7241e83..079473a 100644
--- a/modules/data.rules.inc
+++ b/modules/data.rules.inc
@@ -73,6 +73,30 @@ function rules_data_action_info() {
       ),
     ),
   );
+  $return['data_regex'] = array(
+    'label' => t('Search for matches using a regular expression.'),
+    'parameter' => array(
+      'string' => array(
+        'type' => 'text',
+        'label' => t('String'),
+        'description' => t('The string on which to run the regular expression.'),
+      ),
+      'expression' => array(
+        'type' => 'text',
+        'label' => t('Expression'),
+        'description' => t('The pattern to search for, as a string.  Tip: <a href="@RegExr">RegExr: Online Regular Expression Testing Tool</a> is helpful for learning, writing, finding, and testing Regular Expressions.', array('@regex-wikipedia' => 'http://en.wikipedia.org/wiki/Regular_expression', '@RegExr' => 'http://gskinner.com/RegExr/')'),
+        'default value' => '',
+      ),
+    ),
+    'group' => t('Data'),
+    'base' => 'rules_action_data_regex',
+    'provides' => array(
+      'result' => array(
+        'type' => 'text',
+        'label' => t('The results of search'),
+      ),
+    ),
+  );
   $return['list_add'] = array(
     'label' => t('Add an item to a list'),
     'parameter' => array(
