【发布时间】:2021-07-01 15:17:21
【问题描述】:
可以通过正则表达式来提高下面的性能,代码是函数式的,但是我想知道有没有办法选择unicode中可能存在的破折号来标准化我的破折号
单词:
48553−FS002
48553-FS002
48553 FS002
48553-FS002-ESD12
Java
String reference = "48553−FS002";
String separador = reference.replaceFirst ( "\\w+(\\W)?\\w+", "$1" );
if(!separator.equals ( " " )) {
reference = reference.replaceAll ( separator, "-" );
}
或者您可以搜索 unicode 代码,我正在阅读以下内容:dash,但我没有设法使其工作Java Regex Unicode
【问题讨论】:
-
破折号正则表达式是
\p{Pd}。加上一个软连字符,它是[\p{Pd}\u00AD] -
@WiktorStribiżew 我尝试但在所有情况下都没有找到,例如
48553−FS002,但其他人找到了 -
啊,那个是减号,
\u2212,加吧。[\p{Pd}\u00AD\u2212] -
@WiktorStribiżew 谢谢,我刚刚找到它,甚至一千和一千谢谢,它是一样的。
\u2212