java - 从字符串中解析有符号数

标签 java regex parsing regular-language

我有这样的字符串:

"-------5548481818fgh7hf8ghf----fgh54f4578"

我不想使用模式和匹配器进行解析。我有代码:

string.replaceAll("regex", ""));

如何使正则表达式排除除“-”之外的所有符号以获取如下字符串:

-554848181878544578

最佳答案

您可以使用此负向前瞻正则表达式:

String s = "-------5548481818fgh7hf8ghf----fgh54f4578";

String r = s.replaceAll("(?!^[-+])\\D+", "");
//=> -554848181878544578

(?!^-)\D 将替换除开头连字符之外的所有非数字。

RegEx Demo

关于java - 从字符串中解析有符号数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36749335/

相关文章:

java - 如何将3个字母的语言代码转换为相应的文本?

Javascript正则表达式替换插入额外的斜杠

正则表达式替换正在吃掉整个字符串!如何使正则表达式不贪婪?

regex - 使用正则表达式表示标识符

python - django 不解析 {{ title }}

sql - 如何从 SQL 转储中删除表前缀?

java - SSL 处理因 netty-all-5.0.0.Alpha2 失败,但正在使用 netty-all-5.0.0.Alpha1

java - 处理登录/密码弹出窗口 Selenium JAVA

python - python 中的通用行语法解析器

java - @PostConstruct 中抛出的异常导致 JSF 2.1 中的 IllegalStateException