java - 提取相同字符的2个字符之间的字符串

标签 java string

我了解如何在 2 种不同类型的字符串之间提取字符串,例如 [ 和 ]、或 ( ) 等...

但我不知道的是如何在 1 个字符之间获取多个/所有字符串。 例如:

the *big* brown fox *jumps over* the *lazy* **dog**

它应该返回“*”:

big
jumps over
lazy

它也应该返回“**”:

dog

所有库、正则表达式模式等都不支持此类功能。

最佳答案

这个正则表达式:

[\*]+([a-z ]*)[\*]+

将匹配您要查找的内容。参见 this .

    末尾的
  • [\*]+ 匹配 1 个或多个 *
  • ([a-z ]*) 匹配 a-z 和空格之间的字符,并返回它。

既然 Andy turner 指出它也匹配 *dog********* 中的 dog,您可以:

[\*]{1,2}([a-z ]*)[\*]{1,2}

这将匹配 1 和 2 之间的 *。(参见 this)您可以将其更改为任何范围,但请注意 {1,3} 将匹配 1,2 或 3 次,而不仅仅是 1 和 3 次。

关于java - 提取相同字符的2个字符之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36865600/

相关文章:

c# - StringBuilder.Append 与 StringBuilder.AppendFormat

将字符串中的一个字符更改为字符串

java - 无法编译 JNI C 不兼容的指针类型

java - 权限请求导致 OnResume 中的无限循环

java - 在java中,当数据在流或管道上可用时,有没有办法得到通知

Java:另一个类中的方法未显示

java - 操作 String 类型的数组列表

java - 读取文本文件时出现问题

python - 使用 python 从字符串中去除所有空格和引号的最有效方法是什么?

c++ - 如何正确标记字符串