regex 如何删除java中除curyl括号{ }以外的所有标点符号?[duplicate]

dxxyhpgq  于 2022-12-14  发布在  Java
关注(0)|答案(1)|浏览(74)

此问题在此处已有答案

Character class subtraction, converting from Java syntax to RegexBuddy(3个答案)
8天前关闭。
我们想在某个字符串中搜索大括号之间的键。但是当我们像.split(““)一样拆分字符串时,一些标点符号仍然留在字符串元素中。我们尝试了"\\p{P}"正则表达式,但是它删除了我们需要的大括号。那么我们如何解决这个问题呢?
多谢了。

String keys =  " Dear {User_Name}, your process..."
List<String> bodyContent = (Arrays.asList(keys.replaceAll("\\p{P}", "").split(" ")));

经过这些bodyContent = {"Dear" , "User_Name" , ...}
但是我们需要"{User_Name}"而不是"User_Name""{User_Name},"

yhqotfr8

yhqotfr81#

要匹配可能还包含任何花括号的所有单词,可以使用以下正则表达式:

  1. {*:匹配零个或多个左花括号。
  2. \w*:匹配零个或多个单词字符。
  3. }*:匹配零个或多个右花括号。
({*\w*}*)

我建议使用regex101.com来测试或进行任何您认为合适的更改。我也有一个指向我使用here的regex101的链接。

相关问题