我理解如何在[和],或()等两种不同类型的字符串之间提取字符串...
但我不知道的是如何在1个字符之间获得多个/所有字符串.例如:
the *big* brown fox *jumps over* the *lazy* **dog**
Run Code Online (Sandbox Code Playgroud)
它应返回"*":
big
jumps over
lazy
Run Code Online (Sandbox Code Playgroud)
它也应该返回"**":
dog
Run Code Online (Sandbox Code Playgroud)
所有库,正则表达式模式等都不支持这样的功能.
这个正则表达式:
[\*]+([a-z ]*)[\*]+
Run Code Online (Sandbox Code Playgroud)
将匹配您要找的东西.看到这个.
[\*]+在最后匹配1或更多*s.([a-z ]*) 匹配az和空格之间的字符,并返回该字符.现在,因为安迪·特纳指出,这也符合dog中*dog*********,你可以这样做:
[\*]{1,2}([a-z ]*)[\*]{1,2}
Run Code Online (Sandbox Code Playgroud)
这将匹配*1和2之间s(参照本),您可以更改任何范围,但请注意,{1,3}将匹配1,2或3次,不仅1和3倍.