我需要正则表达式的帮助以从字符串中去除不需要的字符(在 Java 中)。我用 4 个正则表达式互相解决了这个问题。替换将被多次调用 [peeks: 50+ times/sec] 它并降低性能。但是我认为用一个表达式肯定可以,所以性能会有所提高。
测试字符串是
" ! ... my-Cruc i@l_\\/Disp lay.Na#m3 ?;()! "
我喜欢用正则表达式执行的任务
删除所有前导非字母字符 - [字符串开头]
删除所有尾随的非字母数字字符 - [字符串结尾]
删除所有非字母数字字符(除了 [_-.])
所以结果将是
my-Cruil_Display.Nam3
问题在于内置模式 Alnum 和 alpha 之间的切换,这取决于字符串中的位置(开头、结尾)和它们之间的异常字符 [_-.]。
在过去的几天里,我尝试了很多次,但我没有让它工作。使用正则表达式删除前导非字母字符
^([^\\p{Alpha}]+)?
但是,如果我附加“之间”,它就不再起作用了
使用正则表达式删除尾随的非 alpha 字符
([^\\p{Alnum}]+$)
正在工作,但不能与所有其他正则表达式结合使用
最后的尝试之一是
(^[^\\p{Alpha}]+)?[^\\p{Alnum}\\._-]+([^\\p{Alnum}]+$)
任何人都可以帮助完成这项工作
元芳怎么了
相关分类