java - Java中的正则表达式可以分割特殊字符和字母数字

标签 java regex posix

我正在研究在 Java 中使用正则表达式,并在 this link 上发现了一些有趣的东西。 。它说

[:punct:]   Punctuation symbols . , " ' ? ! ; : # $ % & ( ) * + - / < > = @ [ ] \ ^ _ { } | ~

用于分解特殊字符。 Java 中是否有类似的东西,假设我有一个变量:

String sample = "I have $100";

无论如何我可以打破这个变量:我有 100 美元

I
have
$
100

最佳答案

因为您只想在 £ 上进行拆分或$我建议将它们放入您自己的角色类 [£$]相反,使用预定义的字符,其中包含许多可能不应该拆分的字符。所以尝试类似 split("\\s|(?<=[£$])")它将 split

  • \\s - 每个空格
  • (?<=[£$]) - 每个有 £ 的地方或$在它之前像 $|100 (|代表这样的地方)。这里使用的机制称为look-behind

演示

for (String s : "I have $100 and £200".split("\\s|(?<=[£$])"))
    System.out.println(">" + s);

输出:

>I
>have
>$
>100
>and
>£
>200

关于java - Java中的正则表达式可以分割特殊字符和字母数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20174074/

相关文章:

c - 如果正在等待的线程自行分离怎么办?

java - K 和 V 的 HashMap 默认类型

java - Java中将字符串拆分为等长子字符串

java - 微流引擎算法与实现

Python:正则表达式中的 POSIX 字符类?

Java正则表达式截断时间戳值

multithreading - 了解 POSIX 线程

linux - mmap() : resetting old memory to a zero'd non-resident state

java - Bifunction 可以用来替换 Java 8 中的 Tuple 吗?

java - Scala 在非常长的字符串上调用 length() 会引发异常 : Maximum String literal length exceeded