我有这个模式
def charachToReplace = /[\u000E|\u000F|\u0010|\u0011|\u0012|\u0013|\u0014|\u0015|\u0016|\u0017|\u0018|\u0019|\u001A|\u001B|\u001C|\u001D|\u001E|\u001F|\u00A0|\u2007|\u202F|\u2026|\uFEFF|\u2060|\u0023|\u0026|\u00A3|\u00A5|\u00A7|\u00A9|\u00AC|\u00AE|\u00B0|\\u00B1|\u2014|\u2022|\u2026|\u20AC|\u2122|\u25A0|\u25A1|\u25B2|\u25BA|\u25BC|\u2605|\u2606|\u2666|\u2713|\u2756|\u003C|\u003E|\u007C|\u0024|\u0025|\u002A|\u002B|\u002F|\u002D|\u003D|\u005B|\u005C|\u005D|\u005E|\u005F|\u007B|\u007D|\u007E|\u003F|\u0021|\u0028|\u0029|\\d|\u00C6|\u00E6|\u0152|\u0153|\u2018|\u2019|\u201A|\u201B|\u2039|\u203A|\u0027|\u02BC|\u02EE|\u055A|\u07F4|\uFF07|\u0149|\u07F5|\u00AB|\u00BB|\u201C|\u201F|\u201D|\u201E|\u275D|\u275E|\u2E42|\u301D|\u301E|\u301F|\uFF02]/
我希望能够用空格替换任何这些字符(因此,如果我有多个数字,则必须用空格替换每个数字)我正在用replaceAll在一个小的字符串上对此进行测试,但我不理解输出:
def myString = "a b c dsdfsdv e Æ æ Œ œ f g h i j k l m n o p q r s t u v w x y z 12 1 3 45 €€ \$\$£€ ¥ ?§§:!"
println charachToReplace
println myString
println myString.replaceAll(charachToReplace, ' ')
这是输出
[|||||||||||||:|||||| |?|?|…|?|?|#|&|£|¥|§|©|¬|®|°|\\u00B1|—|•|…|€|™|?|?|?|?|?|?|?|?|?|?|<|>|||$|%|*|+|/|-|=|[|\|]|^|_|{|}|~|?|!|(|)|\\d|Æ|æ|Œ|œ|‘|’|‚|?|‹|›|'|?|?|?|?|?|?|?|«|»|“|?|”|„|?|?|?|?|?|?|?]
a b c dsdfsdv e Æ æ Œ œ f g h i j k l m n o p q r s t u v w x y z 12 1 3 45 €€ $$£€ ¥ ?§§:!
a b c s fs v e f g h i j k l m n o p q r s t v w x y z 2 3
是否有理由删除多个符号而不是多个数字?我不明白为什么要在这里删除“ d”和“ u”,因为它不在我的unicode代码点列表中。
谢谢
仔细检查charachToReplace
字符列表。您有\\d
而不是\d
(如果您打算用空格替换数字。)在粗线Groovy字符串中使用\\d
意味着您要用空格替换d
字符。
解决此问题,您应该会看到预期的输出。
[|||||||||||||||||| | | |…|||#|&|£|¥|§|©|¬|®|°|\\u00B1|—|•|…|€|™|■|□|▲|►|▼|★|☆|♦|✓|❖|<|>|||$|%|*|+|/|-|=|[|\|]|^|_|{|}|~|?|!|(|)|\d|Æ|æ|Œ|œ|‘|’|‚|‛|‹|›|'|ʼ|ˮ|՚|ߴ|'|ʼn|ߵ|«|»|“|‟|”|„|❝|❞|⹂|〝|〞|〟|"]
a b c dsdfsdv e Æ æ Œ œ f g h i j k l m n o p q r s t u v w x y z 12 1 3 45 €€ $$£€ ¥ ?§§:!
a b c dsdfsdv e f g h i j k l m n o p q r s t v w x y z :