基于/的正则表达式拆分

时间:2017-03-09 21:35:37

标签: regex

我有一个像

这样的字符串
abc123/xyz456/abc/123/aaa/zzz 

我想将其拆分为

abc123,  xyz456 and abc/123/aaa/zzz

基本上,我想拆分前两个项目作为单独项目,其余项目可以合并。

我尝试了正则表达式^(.*)\/(.*)\/(.*)$,但它让我反过来,如zzzaaaabc123/xyz456/abc/123

有没有办法从左到右而不是从右到左解析?或任何建议都会有所帮助

2 个答案:

答案 0 :(得分:2)

最简单的修复方法是将前两个.*修改为.*?,使前两个.*延迟(即匹配后续子模式的第一个匹配项) :

^(.*?)\/(.*?)\/(.*)$
 ^^^^^^^^^^^

请参阅regex demo

否则,使用与[^\/]/之外的所有字符匹配的否定字符类^([^\/]*)\/([^\/]*)\/(.*)$

*

请参阅another demo

请注意,+量词匹配量化子模式的零个或多个出现次数,您需要将其替换为.*一次或多次出现)如果你需要匹配至少一个。

请注意,最后一个.*?可以保持原样,一个贪婪的模式,因为它在模式结束时将尽可能多地匹配字符串(除了换行符之外),直到字符串结尾。将其转为.*?$(即... module.exports = function(){ const app = this; // Initialize our service with any options it requires app.use('/ebay/inventory', new Service()); // Get our initialize service to that we can bind hooks const ebayService = app.service('/ebay/inventory'); ... module.exports.Service = Service )毫无意义,因为它会降低匹配速度。

答案 1 :(得分:0)

尝试以下方法:

 public void myfunction45(Canvas Panel)
{
    if (Indicator = 45) {     
    Panel.enabled = false;.
    }
} //(indicator- www.progress).