Make queryStringToLabel more useful

Change-Id: I381255725f095e1a2c7e53eb51d99cc37f2066a1
diff --git a/R/misc.R b/R/misc.R
index 9327a32..19ee92c 100644
--- a/R/misc.R
+++ b/R/misc.R
@@ -50,6 +50,8 @@
 #' by clipping off prefixes and suffixes that are common to all query strings.
 #'
 #' @param data string or vector of query or vc definition strings
+#' @param pubDateOnly discard all but the publication date
+#' @param excludePubDate discard publication date constraints
 #' @return string or vector of strings with clipped off common prefixes and suffixes
 #'
 #' @examples
@@ -61,13 +63,18 @@
 #' @importFrom PTXQC lcsCount
 #'
 #' @export
-queryStringToLabel <- function(data) {
+queryStringToLabel <- function(data, pubDateOnly = F, excludePubDate = F) {
+  if (pubDateOnly) {
+    data <-substring(data, regexpr("pubDate", data)+7)
+  } else if(excludePubDate) {
+    data <-substring(data, 1, regexpr("pubDate", data))
+  }
   leftCommon = lcpCount(data)
-  while (leftCommon > 0 && grepl("[[:alnum:]]", substring(data[1], leftCommon, leftCommon))) {
+  while (leftCommon > 0 && grepl("[[:alnum:]/=.*!]", substring(data[1], leftCommon, leftCommon))) {
     leftCommon <- leftCommon - 1
   }
   rightCommon = lcsCount(data)
-  while (rightCommon > 0 && grepl("[[:alnum:]]", substring(data[1], rightCommon, rightCommon))) {
+  while (rightCommon > 0 && grepl("[[:alnum:]/=.*!]", substring(data[1], 1+nchar(data[1]) - rightCommon, 1+nchar(data[1]) - rightCommon))) {
     rightCommon <- rightCommon - 1
   }
   substring(data, leftCommon + 1, nchar(data) - rightCommon)