亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

正則表達式繼續匹配相似的模式

正則表達式繼續匹配相似的模式

繁花不似錦 2023-07-13 14:09:21
我有 JCL 語句與正則表達式模式匹配 該語句如下所示//name JOB optionalParam,keyword=param,keyword=param,keyword=param實際的聲明如下//ADBB503  JOB ,MSGCLASS=2,CLASS=P  //ABCD JOB Something,MSG=NTNG,CLASS=ABC我嘗試過使用正則表達式來分組匹配,但是最后一個關鍵字和參數將有 n 次,我需要繼續匹配直到它存在。String regex= (\/\/)(\w+)(\s+)(JOB)(\s+)(\w+)?(,)([\w+=\w+]+);我的試用位于下面給出的鏈接 https://regex101.com/r/gUyRMV/1我面臨的錯誤是只有一個關鍵字=參數匹配。需要匹配N個關鍵字和參數。
查看完整描述

1 回答

?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

您可以匹配第一個捕獲組中的作業語句,并使用它\G來獲取第 2 組中的參數:

(?:(//\w+\s+JOB(?: \w+)?)\h*|\G(?!^)),(\w+=\w+)

解釋

  • (?:非捕獲組

    • //\w+\s+JOB匹配//, 1+ 個單詞字符和JOB

    • (?: \w+)?匹配可選參數

    • (捕獲組 1

    • )\h*` 關閉組并匹配 0+ 水平空白字符

    • |或者

    • \G(?!^)在上一場比賽結束時而不是開始時斷言位置

    • ), 關閉非捕獲組并匹配,

    • (捕獲組2

      • \w+=\w+匹配 1+ 單詞字符=1 + 單詞字符

    • )封閉組

    在java中

    String regex = "(?:(//\\w+\\s+JOB(?: \\w+)?)\\h*|\\G(?!^)),(\\w+=\\w+)";

    正則表達式演示Java演示


    查看完整回答
    反對 回復 2023-07-13
    • 1 回答
    • 0 關注
    • 117 瀏覽
    慕課專欄
    更多

    添加回答

    舉報

    0/150
    提交
    取消
    微信客服

    購課補貼
    聯系客服咨詢優惠詳情

    幫助反饋 APP下載

    慕課網APP
    您的移動學習伙伴

    公眾號

    掃描二維碼
    關注慕課網微信公眾號