簡體   English   中英

正則表達式:匹配部分字符串

[英]Regex: Match partial string

我需要一些幫助-我的技能不足:)(而且我不知道純正則表達式是否可行)

案例:我有一些文本輸入形式為:

輸入1:“ abc,雜波,01 ;xyz,雜波,02;” (應該匹配)
input2: "abc,clutter,02;zyz,clutter,01;" (不匹配)
input3: "abc,clutter,02; abc,txt,txt,01 ;xyz,clutter,01" (應該匹配)

那么匹配應該是

  • 以 abc 開頭(輸入中的任何位置)
  • 介於兩者之間的一切——除非,02; 介於兩者之間
  • 以,01結尾;

所以像: abc(.*)(?,;02,);01; ..但這也匹配input2,這不是意圖:)

例如,您可以使用匹配除,;之外的所有字符的重復模式。

\babc(?:,(?!02,)[^,;\n]+)*,01;
  • \babc一個單詞邊界,匹配 abc
  • (?:非捕獲組
    • ,(?,02,)[^;;\n]+負前瞻,不斷言 02,匹配除,之外;任何字符或換行符
  • )*關閉組並可選擇重復
  • ,01; 從字面上匹配

正則表達式演示

如果 abc 應該只匹配一個,您也可以將其添加到負前瞻

\babc(?:,(?!(?:02|abc),)[^,;\n]+)*,01;

正則表達式演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM