Java替换所有字符串的所有字符串添加引号但忽略句点

时间:2016-05-31 15:39:24

标签: java regex string

因此,我尝试接受字符串并在每个单词周围添加引号以用于格式化目的

String data = "JavaScript, Spring 4.0"
String result = data.replaceAll("(\\w+)", "\"$1\"");
result = "[" + result + "]";             
System.out.println(result);

但它会像这样返回:“JavaScript”,“Spring”“4”。“0” 无论如何要忽略这里的时期?

3 个答案:

答案 0 :(得分:2)

在字符类中包含Cannot insert duplicate key row in object 'dbo.TableB' with unique index

    BEGIN TRY
      insert into TableB
        (   change_id
          , item_id    
          , class
          , subclass      
          , start_date
          , end_date

        )       
      select 
            change_id
          , item_id    
          , class
          , subclass      
          , start_date
          , end_date
      from openquery(ORA,'select * from TableA where start_date >= next_day(trunc(sysdate)-5,''MONDAY'')')
END TRY
BEGIN CATCH
--
END CATCH

答案 1 :(得分:0)

在正则表达式中,术语Nothing指的是任何不包含句点的单词字符(大写和小写字母,数字和下划线)。

您可以展开表达式以包含character class - 一组字符 - 其中包含句点,如下所示:

If Not foundRange Is Nothing

在上面的表达式中,方括号表示一个字符类。我保留原始\w以匹配任何单词字符,但也添加了句点。由于并非所有单词都有句号,因此即使句点不存在,表达式也需要匹配。 [\w.]+ 运算符匹配由字符类定义的集合中的一个或多个项目。

在Java中转义反斜杠,您的代码应如下所示:

\w

答案 2 :(得分:-1)

使用(\\S+)代替(\\w+)

声明:String result = data.replaceAll("(\\S+)", "\"$1\"");

输出:["JavaScript," "Spring" "4.0"]

并且

声明:String result = data.replaceAll("\\.|\\,", "").replaceAll("(\\S+)", "\"$1\"");

输出:["JavaScript" "Spring" "40"]