我需要一些帮助 - 我在这里的技能不足:)(我不知道是否可以使用纯正则表达式)
案例:我有一些以下形式的文本输入:
input1: "abc,clutter,01;xyz,clutter,02;" (应该匹配)
input2: "abc,clutter,02;zyz,clutter,01;" (不匹配)
input3: "abc,clutter,02;abc,txt,txt,01;xyz,clutter,01"(应该匹配)
那么匹配应该是
所以类似:
abc(.*)(?!,02;),01;
.. 但这也匹配 input2,这不是意图 :)
答案 0 :(得分:1)
例如,您可以使用重复模式匹配除 ,
和 ;
之外的所有字符
\babc(?:,(?!02,)[^,;\n]+)*,01;
\babc
一个词边界,匹配 abc(?:
非捕获组
,(?!02,)[^,;\n]+
否定前瞻,断言不是 02,并匹配除 ,
;
或换行符以外的任何字符)*
关闭群组并可选择重复,01;
逐字匹配如果 abc 应该只匹配一个,您也可以将其添加到负前瞻
\babc(?:,(?!(?:02|abc),)[^,;\n]+)*,01;