我了解如何在 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/