Groovy replaceAll使用Unicode代码点

问题描述 投票:0回答:1

我有这个模式

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代码点列表中。

谢谢

regex groovy pattern-matching replaceall unicode-string
1个回答
0
投票

仔细检查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                        : 
© www.soinside.com 2019 - 2024. All rights reserved.