第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

正則表達(dá)式可選擇匹配文件名末尾的 3 位數(shù)字

正則表達(dá)式可選擇匹配文件名末尾的 3 位數(shù)字

C#
慕無忌1623718 2022-10-15 14:09:48
我一生都無法弄清楚如何讓這些匹配:File name without 3 digit end.jpgFile name with 3 digit 123.gifSingle 123.jpgSingle.png但不是這些:Single 1.jpgSingle 123b.gifMore words 123b.png到目前為止,我能做到的最好的就是這個(gè)表達(dá)式:^[^\s]((?!\s{2})(?!,\S).)*\b(\p{L}+|\d{3})\.\w{3}$但它無法匹配Single.png,仍然匹配Single 123b.gifand More words 123b.png。我想我明白為什么它不起作用,但我不知道如何讓它正確,我一直在努力和谷歌搜索 2 天。我的完整規(guī)則是:在文件擴(kuò)展名之前可以選擇正好 3 個(gè)數(shù)字,3 個(gè)字母的文件擴(kuò)展名,文件名中沒有雙空格,逗號之后但不是逗號之前有一個(gè)空格。
查看完整描述

3 回答

?
長風(fēng)秋雁

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以使用包含 3 個(gè)數(shù)字或一系列非數(shù)字的交替組,前面有一個(gè)單詞邊界斷言:

^.*?\b(?:\d{3}|\D+)\.\w{3}$

演示:https ://regex101.com/r/A9iSVE/3


查看完整回答
反對 回復(fù) 2022-10-15
?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊

為了將您的要求考慮到逗號和雙空格,一種選擇可能是使用 2 個(gè)負(fù)前瞻來斷言字符串不包含雙空格并且在逗號之前不包含空格。

\s如果要匹配空白字符而不是單個(gè)空格,則可以使用。

^(?!.*[ ]{2})(?!.* ,).*\b(?:\p{L}+|\d{3})\.\w{3}$

那將匹配

  • ^字符串的開始

  • (?!.*[ ]{2})斷言不是 2 個(gè)空格

  • (?!.* ,)斷言不是一個(gè)空格和一個(gè)逗號

  • .*\b匹配任何字符 0+ 次,后跟單詞邊界

  • (?:\p{L}+|\d{3})匹配 1+ 次字母或 3 位數(shù)字

  • \.\w{3}匹配.和 3 個(gè)單詞字符

  • $字符串結(jié)束

正則表達(dá)式演示C# 演示


查看完整回答
反對 回復(fù) 2022-10-15
?
慕雪6442864

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

您可以在不回溯的情況下滿足指定的規(guī)則(當(dāng)前接受的答案就是這樣)。指定的規(guī)則是(為了清楚起見重新措辭):文件名必須滿足以下條件:

  • 它不得包含多個(gè)空格字符的序列。

  • 逗號后面必須有一個(gè)空格字符。

  • 文件名詞干可以有一個(gè) 3 位數(shù)的后綴。

  • 文件擴(kuò)展名必須由 3 個(gè)字母組成。

為此:

^(?<prefix>[^, ]+(,? [^, ]+)*)(?<suffix>\d\d\d)?(?<extension>.\p{L}\p{L}\p{L})$

會成功的,沒有花哨的前瞻,沒有回溯。分解成碎片,你會得到:

^                  # * match start-of-text, followed by

(?<prefix>         # * a named group, consisting of

  [^,\x20]+        #   * 1 or more characters other than comma or space, followed by

  (                #   * a group, consisting of

    ,?             #     * an optional comma, followed by

    \x20           #     * a single space character, followed by

    [^,\x20]+      #     * 1 or more characters other than comma or space

  )*               #     with the whole group repeated zero or more times

)                  #   followed by

(?<suffix>         # * an optional named group (the suffix), consisting of

  \d\d\d           #   * 3 decimal digits

)?                 #   followed by

(?<extension>      # * a mandatory named group (the filename extension), consisting of

  .\p{L}\p{L}\p{L} #   * 3 letters.

)                  #   followed by

$                  # end-of-text


查看完整回答
反對 回復(fù) 2022-10-15
  • 3 回答
  • 0 關(guān)注
  • 361 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號