- 编辑 - 目前的答案有一些有用的想法,但我想要一些更完整的东西,我可以100%理解和重用; 这就是我设置赏金的原因.对于我来说,无处不在的想法比没有标准语法更好\K
这个问题是关于如何匹配模式除了某些情况s1 s2 s3.我举一个具体的例子来说明我的意思,但更喜欢我能100%理解的一般答案,所以我可以在其他情况下重复使用它.
例
我希望匹配五位数\b\d{5}\b但不能在三种情况下匹配s1 s2 s3:
s1:不在以句子这样的句号结尾的行上.
s2:在parens里面没有任何地方.
s3:不在以#开头if(和结尾的块内//endif
我知道如何使用前瞻和后视来解决s1 s2 s3中的任何一个,尤其是在C#lookbehind或\KPHP中.
例如
S1 (?m)(?!\d+.*?\.$)\d+
s3与C#lookbehind (?<!if\(\D*(?=\d+.*?//endif))\b\d+\b
s3与PHP\K (?:(?:if\(.*?//endif)\D*)*\K\d+
但条件的混合使我的头脑爆炸.更糟糕的是,我可能需要在其他时间添加其他条件s4 s5.
好消息是,我不在乎是否使用PHP,C#,Python或邻居的洗衣机等大多数常用语言处理文件.:)我几乎是Python和Java的初学者,但有兴趣了解它是否有解决方案.
所以我来到这里看是否有人想到一个灵活的食谱.
提示没问题:你不需要给我完整的代码.:)
谢谢.
我需要拆分下一个字符串
value1,value2[2,5],value3[4,7],value4,value5[7,4]
Run Code Online (Sandbox Code Playgroud)
拆分后我应该有下一个数组:
value1
value2[2,5]
value3[4,7]
value4
value5[7,4]
Run Code Online (Sandbox Code Playgroud)
我不能用逗号分割,我也不想要复杂的逻辑.我想有最简单的逻辑.
感谢帮助.
编辑:我的尝试:
var parts = Regex.Split(line, "/([^,]+\\[[^,\\]]*\\,[^,\\]]*\\])|([^,]+)|(,,)/g");
Run Code Online (Sandbox Code Playgroud) 我正在寻找java正则表达式来拆分inputString而忽略括号/多个括号之间的分隔符.
Java代码:
Pattern p = Pattern.compile("[,regex?]");
String[] desiredOutput =p.split(inputString);
Run Code Online (Sandbox Code Playgroud)
例如:
inputString="1,{2,{3},4},{4,5},6";
Run Code Online (Sandbox Code Playgroud)
desiredOutput with; 分隔符:
1;{2,{3},4};{4,5};6
Run Code Online (Sandbox Code Playgroud)
日Thnx!