因此,我尝试接受字符串并在每个单词周围添加引号以用于格式化目的
String data = "JavaScript, Spring 4.0"
String result = data.replaceAll("(\\w+)", "\"$1\"");
result = "[" + result + "]";
System.out.println(result);
但它会像这样返回:“JavaScript”,“Spring”“4”。“0” 无论如何要忽略这里的时期?
答案 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"]