




已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
正則表達(dá)式相信大家都有在電腦上查找某個(gè)文件的經(jīng)歷,例如需要把C盤中的所有Word文檔給找出來,很簡單,只需要按“Ctrl+F”快捷鍵,調(diào)出系統(tǒng)的搜索窗口,然后在文件名窗口輸入“*.doc”,單擊“搜索”按鈕后Windows就會(huì)找到所有的Word文檔。如果改變搜索目標(biāo),改為“w*.doc”,那么Windows就會(huì)找出所有以字母w開頭的Word文檔。為什么Windows知道我們要找的是Word文檔?為什么它會(huì)把所有的Word文檔都找出來?秘密就是“*.doc”。這里的*是通配符,表示文件名不限,可以匹配任何的文件名而.doc是擴(kuò)展名??梢?,就是這樣一個(gè)描述了查詢目標(biāo)特征的字符串,讓系統(tǒng)了解了我們的查詢目標(biāo)。正則表達(dá)式也類似一個(gè)字符串,它描述了目標(biāo)字符串的特征。正則表達(dá)式引擎正是使用這種特征,實(shí)現(xiàn)了在一在堆的字符串中查找或者替換我們符合要求的字符串。先來看一個(gè)簡單的正則表達(dá)式:“hi”,使用這個(gè)正則表達(dá)式可以在“aabbhibbaahiaa”中將兩個(gè)“hi”字符串給找出來,.NET還提供了一些非常復(fù)雜的類來識(shí)別字符串,或從長字符串中提取滿足某些復(fù)雜條件的子字符串。例如,找出字符串中重復(fù)出現(xiàn)的某個(gè)字符或一組字符,或者找出以s開頭、且至少包含一個(gè)n的所有單詞,或者找出遵循雇員ID或社會(huì)安全號(hào)碼約定的字符串。雖然可以使用String類,編寫方法來執(zhí)行這類處理,但這類方法編寫起來比較繁瑣,而使用System.Text.RegularExpressions命名空間中的類就比較簡單,System.Text. RegularExpressions專門用于執(zhí)行這類處理。正則表達(dá)式在很多領(lǐng)域都得到了廣泛的應(yīng)用,例如:l 在B/S應(yīng)用程序前端表達(dá)驗(yàn)證中,我們使用正則表達(dá)式來驗(yàn)證諸如電子郵件、網(wǎng)址、日期等的格式是否正確,以及用戶名、密碼的合法性等。l 在網(wǎng)絡(luò)爬蟲應(yīng)用程序中,可以使用正則表達(dá)式來分析網(wǎng)頁的源代碼HTML,找出其中的URL等有用信息。l 在文本/代碼編輯器應(yīng)用程序中,可以使用正則表達(dá)式來查找某個(gè)特定的字符,甚至可以將之替換為別的特定字符串。正則表達(dá)式的語法很多語言都提供了對(duì)于正則表達(dá)工的支持,C#自然也不例外。使用正則表達(dá)式處理文本或字符串至少要有兩個(gè)輸入項(xiàng),然后正則表達(dá)式引擎才可以根據(jù)這兩個(gè)輸入來輸入來輸出結(jié)果。這兩個(gè)輸入如下。l 使用正則表達(dá)式語法編寫的模式字符串。正則表達(dá)式有其獨(dú)待的語法定義,雖然很多語言都支持正則表達(dá)式,但其語法不盡相同,C#中支持的正則表達(dá)式語法和Perl5中的語法相兼容,而且還添加了一些其他特性,諸如從右到左匹配。l 需要分析的文本或者字符串。第二項(xiàng)不需多說,關(guān)鍵在于第一個(gè)輸入項(xiàng)。要編寫一個(gè)模式字符串,就需要十分地熟悉正則表達(dá)式語法,這也是本節(jié)的目標(biāo)。由于正則表達(dá)式的內(nèi)容實(shí)在太多,因此這里挑選了一些比較重要的,或者比較常用的部分語法進(jìn)行介紹。正則表達(dá)式的語法內(nèi)容主要分成如下幾個(gè)部分:字符轉(zhuǎn)義、定位點(diǎn)、字符類、限定類、分構(gòu)造以及替換構(gòu)造。1 字符轉(zhuǎn)義這里的轉(zhuǎn)意字符主要是指當(dāng)一個(gè)反斜杠()和某些字符放在一起時(shí)代表一些特殊含義,主要包括以下兩種情況l 其后的字符是一個(gè)特殊字符。例如:b指示正則表達(dá)式匹配應(yīng)在單詞邊界上開始的定位點(diǎn),t表示一個(gè)制表符,而x020表示空格。l 按某些字符的愿意解釋,避免解釋成其他含義。例如:大括號(hào)“”是開始限定符的定義,但反斜杠后接大括號(hào)“”表示正則表達(dá)式引擎應(yīng)匹配大括號(hào)。同樣,一個(gè)反斜械標(biāo)志轉(zhuǎn)義語言構(gòu)造的開頭,但兩個(gè)反斜杠()則指示正則表達(dá)式引擎應(yīng)匹配反斜杠()。正則表達(dá)式字符轉(zhuǎn)義列表轉(zhuǎn)義字符說明將下一個(gè)字符標(biāo)記為一個(gè)特殊字符、一個(gè)原義字符、一個(gè)向后引用或一個(gè)八進(jìn)制轉(zhuǎn)義字符。f匹配一個(gè)換頁符n匹配一個(gè)換行符r匹配一個(gè)回車符t匹配一個(gè)制表符v匹配一個(gè)垂直制表符cx匹配由x指明的控制字符。例如,cM匹配一個(gè)Control-M或回車符。c的值必須為A-Z或a-z之一。否則,將c將視為一個(gè)原義的“c”字符。xnn匹配n,其中n為十六進(jìn)制轉(zhuǎn)義值。十六進(jìn)制轉(zhuǎn)義值必須確定的兩個(gè)數(shù)字長。例如,x41匹配“A”。x041則等價(jià)于x04&“1”。正則表達(dá)式可以用ASCII編碼。unnnn匹配n,其中n是一個(gè)用四個(gè)十六進(jìn)制數(shù)字表示的Unicode字符。例如,u00A9匹配版權(quán)符號(hào)(?)2 定位點(diǎn)定位點(diǎn)主要作用是指示字符串中必須發(fā)生匹配的位置,如果正則表達(dá)式中使用了定位點(diǎn),那么引擎就不會(huì)在字符串的其他位置搜索,而是只在定位點(diǎn)指示的位置搜索,例如:$指示必須從字符串的末尾或者行尾開始搜索,而則指示從開頭開始搜索,具體的定點(diǎn)列表如表所示。元素說明示例匹配的示例匹配必須從字符串或一行的開頭開始。d匹配“206”的2$匹配必須出現(xiàn)在字符串的末尾或出現(xiàn)在字符串末尾的n之前d$匹配“206”的6A匹配必須出現(xiàn)在字符串的開頭Ad匹配“206”的2Z匹配必須出現(xiàn)在字符串的末尾或出現(xiàn)在字符串末尾的n之前dZ匹配“206”的6z匹配必須出現(xiàn)在字符串的末尾dz匹配“206”的6G匹配必須出現(xiàn)在上一個(gè)匹配結(jié)束的地方Gd匹配“2a06”中的2b匹配一個(gè)單詞邊界,也就是指單詞和空格間的位置db可以匹配“dogs102”中的2,但不能匹配其中的1和0B匹配不能出現(xiàn)在b邊界上dB可以匹配“dogs102”中的1和0,但不能匹配23 字符類字符類與一組字符中的任何一個(gè)字符匹配。字符類說明.小數(shù)點(diǎn)可以匹配除了換行符“”之外的任何單個(gè)字符。如可以匹配“favorite”中的全部字符.x|y匹配 x 或 y。例如,z|food 能匹配 z 或 food。(z|f)ood 則匹配 zood 或 food。xyz字符集合。匹配所包含的任意一個(gè)字符。例如, abc 可以匹配 plain 中的 a。xyz 負(fù)值字符集合。匹配未包含的任意字符。例如, abc 可以匹配 plain 中的p、l、i、n。a-z字符范圍。匹配指定范圍內(nèi)的任意字符。例如,a-z 可以匹配 a 到 z 范圍內(nèi)的任意小寫字母字符。a-z負(fù)值字符范圍。匹配任何不在指定范圍內(nèi)的任意字符。例如,a-z 可以匹配任何不在 a 到 z 范圍內(nèi)的任意字符。d匹配一個(gè)數(shù)字字符。等價(jià)于 0-9。D匹配一個(gè)非數(shù)字字符。等價(jià)于 0-9。s匹配任何空白字符,包括空格、制表符、換頁符等等。等價(jià)于 fnrtv。匹配“ Im ok!”中的空格,字符索引3開始,到索引4截止。S匹配任何非空白字符。等價(jià)于 fnrtv。w匹配包括下劃線的任何單詞字符。等價(jià)于A-Za-z0-9_。W 匹配任何非單詞字符。等價(jià)于 A-Za-z0-9_。4 限定符限定符指定在輸入中必須在存在字符、組或字符類的多少個(gè)實(shí)例才能找到匹配項(xiàng)。正則表達(dá)式限定符列表限定符說明*匹配前面的子表達(dá)式零次或多次。例如,zo* 能匹配 z 以及 zoo。* 等價(jià)于0,。+匹配前面的子表達(dá)式一次或多次。例如,zo+ 能匹配 zo 以及 zoo,但不能匹配 z。+ 等價(jià)于 1,?匹配前面的子表達(dá)式零次或一次。例如,do(es)? 可以匹配 do 或 does 中的do 。? 等價(jià)于 0,1nn 是一個(gè)非負(fù)整數(shù)。匹配確定的 n 次。例如,o2 不能匹配 Bob 中的 o,但是能匹配 food 中的兩個(gè) o。n,n 是一個(gè)非負(fù)整數(shù)。至少匹配n 次。例如,o2, 不能匹配 Bob 中的 o,但能匹配 foooood 中的所有 o。o1, 等價(jià)于 o+。o0, 則等價(jià)于 o*。n,mm 和 n 均為非負(fù)整數(shù),其中n = m。最少匹配 n 次且最多匹配 m 次。例如,o1,3 將匹配 fooooood 中的前三個(gè) o。o0,1 等價(jià)于 o?。請(qǐng)注意在逗號(hào)和兩個(gè)數(shù)之間不能有空格。?當(dāng)該字符緊跟在任何一個(gè)其他限制符 (*, +, ?, n, n, n,m) 后面時(shí),匹配模式是非貪婪的。非貪婪模式盡可能少的匹配所搜索的字符串,而默認(rèn)的貪婪模式則盡可能多的匹配所搜索的字符串。例如,對(duì)于字符串 oooo,o+? 將匹配單個(gè) o,而 o+ 將匹配所有 o。*?指定盡可能少地使用重復(fù)的第一個(gè)匹配(等效于 lazy *)。+?指定盡可能少地使用重復(fù)但至少使用一次(等效于 lazy +)。?指定使用零次重復(fù)(如有可能)或一次重復(fù) (lazy ?)。 n ?等效于 n (lazy n)。 n ,?指定盡可能少地使用重復(fù)但至少使用 n 次 (lazy n,)。 n , m ?指定介于 n 次和 m 次之間、盡可能少地使用重復(fù) (lazy n,m)。5 分組構(gòu)造分組構(gòu)造用于匹配輸入字符串中重復(fù)的子表達(dá)式。分組構(gòu)造說明(子表達(dá)式)捕獲匹配的子字符串(或非捕獲組;有關(guān)更多信息,請(qǐng)參見正則表達(dá)式選項(xiàng)中的 ExplicitCapture 選項(xiàng))。使用 () 的捕獲根據(jù)左括號(hào)的順序從 1 開始自動(dòng)編號(hào)。捕獲元素編號(hào)為零的第一個(gè)捕獲是由整個(gè)正則表達(dá)式模式匹配的文本。(?:子表達(dá)式)非捕獲組。(?子表達(dá)式)將匹配的子字符串捕獲到一個(gè)組名稱或編號(hào)名稱中。用于 name 的字符串不能包含任何標(biāo)點(diǎn)符號(hào),并且不能以數(shù)字開頭??梢允褂脝我?hào)替代尖括號(hào),例如 (?name)。(?子表達(dá)式)平衡組定義。刪除先前定義的 name2 組的定義并在 name1 組中存儲(chǔ)先前定義的 name2 組和當(dāng)前組之間的間隔。如果未定義 name2 組,則匹配將回溯。由于刪除 name2 的最后一個(gè)定義會(huì)顯示 name2 的先前定義,因此該構(gòu)造允許將 name2 組的捕獲堆棧用作計(jì)數(shù)器以跟蹤嵌套構(gòu)造(如括號(hào))。在此構(gòu)造中,name1 是可選的??梢允褂脝我?hào)替代尖括號(hào),例如 (?name1-name2)。(?=子表達(dá)式)零寬度正預(yù)測先行斷言。僅當(dāng)子表達(dá)式在此位置的右側(cè)匹配時(shí)才繼續(xù)匹配。例如,w+(?=d) 與后跟數(shù)字的單詞匹配,而不與該數(shù)字匹配。此構(gòu)造不會(huì)回溯。(?!子表達(dá)式)零寬度負(fù)預(yù)測先行斷言。僅當(dāng)子表達(dá)式不在此位置的右側(cè)匹配時(shí)才繼續(xù)匹配。例如,b(?!un)w+b 與不以 un 開頭的單詞匹配。(?=子表達(dá)式)零寬度正回顧后發(fā)斷言。僅當(dāng)子表達(dá)式在此位置的左側(cè)匹配時(shí)才繼續(xù)匹配。例如,(?=19)99 與跟在 19 后面的 99 的實(shí)例匹配。此構(gòu)造不會(huì)回溯。(?子表達(dá)式)非回溯子表達(dá)式(也稱為“貪婪”子表達(dá)式)。該子表達(dá)式僅完全匹配一次,然后就不會(huì)逐段參與回溯了。(也就是說,該子表達(dá)式僅與可由該子表達(dá)式單獨(dú)匹配的字符串匹配。)(? imnsx-imnsx : 子表達(dá)式)應(yīng)用或禁用子表達(dá)式中指定的選項(xiàng)。例如,(?i-s: ) 將打開不區(qū)分大小寫并禁用單行模式。有關(guān)更多信息,請(qǐng)參見正則表達(dá)式選項(xiàng)。num后向引用。匹配編號(hào)子表達(dá)式的值。k命名后向引用。匹配命名表達(dá)式的值。6 替換構(gòu)造替換構(gòu)造用于修改正則表達(dá)式,以支持either/or或條件匹配替換結(jié)構(gòu)說明|與以 |(豎線)字符分隔的術(shù)語中的任何一項(xiàng)匹配;例如, cat|dog|tiger。使用最左側(cè)的成功匹配。(?(表達(dá)式)yes|no)如果表達(dá)式在此位置匹配,則與“yes”部分匹配;否則,與“no”部分匹配?!皀o”部分可省略。表達(dá)式可以是任何有效的子表達(dá)式,但它將變?yōu)榱銓挾葦嘌?,因此該語法等效于 (?(?=expression)yes|no)。請(qǐng)注意,如果表達(dá)式是命名組的名稱或捕獲組編號(hào),則替換構(gòu)造將解釋為捕獲測試(在本表的下一行對(duì)此進(jìn)行了描述)。若要避免在這些情況下產(chǎn)生混淆,則可以顯式拼出內(nèi)部 (?=expression)。(?(name)yes|no)如果命名捕獲字符串有匹配,則與“yes”部分匹配;否則,與“no”部分匹配。“no”部分可省略。如果給定的名稱不與此表達(dá)式中使用的捕獲組的名稱或編號(hào)對(duì)應(yīng),則替換構(gòu)造將解釋為表達(dá)式測試(在本表的上一行進(jìn)行了描述)。.NET對(duì)于正則表達(dá)式的支持System.Text.RegularExpressions命名空間提供了對(duì)正則表達(dá)式的支持,主要的類包括Capture、CaptureCollection、Group、GroupCollection、Match、MatchCollection有及Regex,其中除了Regex以外,其他類均為只讀,也均為不可變類,且均無公共構(gòu)造函數(shù)。事實(shí)上它們的構(gòu)造函數(shù)都是內(nèi)部訪問級(jí)別,也就是說只有同程序集的類型才可以將它們實(shí)例化。其中CaptureCollection、GroupCollection以及MatchCollection均為集合類,都實(shí)現(xiàn)了ICollection和IEnumerable接口,因此可以像使用集合一樣使用它們。其中包括使用foreach循環(huán)順序訪問集合中的第一個(gè)元素,只不過它們都是只讀集合,這一點(diǎn)需要注意。圖為類圖,從中可以看出它們之間的關(guān)系。.Net正則表達(dá)式核心類圖下表列出各類的幾點(diǎn)說明,以幫助理解類各類的功能。類說明Capture表示單個(gè)子表達(dá)式捕獲中的結(jié)果,從類圖中可以看到,它是Group和Match的基類,很明顯Group和Match也是捕獲結(jié)果的另一種表達(dá)形式。另外,因?yàn)镃apture無公共構(gòu)造函數(shù),它的實(shí)例對(duì)象只能由CaptureCollection對(duì)象返回。Capture主要定義了一些公共屬性,注意屬性都是只讀的如下:Index:表示找到的目標(biāo)字符串在原字符串中的索引位置。Length:表示找到的目標(biāo)字符串的長度。Value:表示找到的目標(biāo)字符串。該值也可以通過Capture類已重載的ToString()方法返回。CaptureCollection表示一個(gè)捕獲子字符串序列。CaptureCollection 返回由單個(gè)捕獲組執(zhí)行的捕獲的集合。CaptureCollection集合內(nèi)部有一個(gè)Capture對(duì)象數(shù)組,每一個(gè)Capture對(duì)象都代表一個(gè)捕獲結(jié)果??梢酝ㄟ^Group.Captures屬性或Match.Captures屬性獲得CaptureCollection類的實(shí)例。GroupGroup 表示單個(gè)捕獲組的結(jié)果。由于存在數(shù)量詞,一個(gè)捕獲組可以在單個(gè)匹配中捕獲零個(gè)、一個(gè)或更多的字符串,因此 Group 提供Capture 對(duì)象的集合。GroupCollection表示捕獲組的集合。GroupCollection 返回單個(gè)匹配中的捕獲組的集合。Match表示單個(gè)正則表達(dá)式匹配的結(jié)果。Regex.Match方法返回一個(gè)Match對(duì)象,作為第一個(gè)匹配項(xiàng),其他的匹配項(xiàng)可通過Match.NextMatch獲得??梢酝ㄟ^Match對(duì)象的Success屬性來判斷匹配是否成功。還可以通過Match對(duì)象獲得所有匹配的組的集合(GroupCollection)以及所有捕獲的集合(Captures,屬于父類Group的成員)MatchCollection表示通過以迭代方式將正則表達(dá)式模式應(yīng)用于輸入字符串所找到的成功匹配的集合。Regex表示不可變的正則表達(dá)式。接下來重點(diǎn)介紹Regex對(duì)象。使用Regex有兩種方法,其一就是將其實(shí)例化,然后調(diào)用實(shí)例方法;其二是調(diào)用靜態(tài)方法,而不進(jìn)行實(shí)例化。這兩種方法是等價(jià)的,讀者可以自主選擇。如果選擇實(shí)例化Regex對(duì)象,那么就有必要了解Regex對(duì)象的構(gòu)造函數(shù)以及相應(yīng)的實(shí)例方法,接下來分別進(jìn)行介紹。Regex有兩個(gè)公共構(gòu)造函數(shù),如下表所示:構(gòu)造函數(shù)說明Regex (String) 為指定的正則表達(dá)式初始化并編譯 Regex 類的一個(gè)新實(shí)例。 Regex (String, RegexOptions) 用修改模式的選項(xiàng)為指定的正則表達(dá)式初始化并編譯 Regex 類的一個(gè)新實(shí)例。 RegexOptions枚舉的一些選項(xiàng):成員名稱說明Compiled指定將正則表達(dá)式編譯為程序集。這會(huì)產(chǎn)生更快的執(zhí)行速度,但會(huì)增加啟動(dòng)時(shí)間。CultureInvariant指定忽略字符串的文化背景。ECMAScript為表達(dá)式啟用符合 ECMAScript 的行為。該值只能與 IgnoreCase、Multiline 和 Compiled 值一起使用。該值與其他任何值一起使用均將導(dǎo)致異常。ExplicitCapture指定有效的捕獲僅為形式為 (?.) 的顯式命名或編號(hào)的組。這使未命名的圓括號(hào)可以充當(dāng)非捕獲組,并且不會(huì)使表達(dá)式的語法 (?:.) 顯得笨拙。IgnoreCase指定不區(qū)分大小寫的匹配。IgnorePatternWhitespace消除模式中的非轉(zhuǎn)義空白并啟用由 # 標(biāo)記的注釋。但是,IgnorePatternWhitespace 值不會(huì)影響或消除字符類中的空白。 Multiline多行模式。更改 和 $ 的含義,使它們分別在任意一行的行首和行尾匹配,而不僅僅在整個(gè)字符串的開頭和結(jié)尾匹配。None指定不設(shè)置選項(xiàng)。RightToLeft指定搜索從右向左而不是從左向右進(jìn)行。Singleline指定單行模式。更改點(diǎn) (.) 的含義,使它與每一個(gè)字符匹配(而不是與除 n 之外的每個(gè)字符匹配)。正則表達(dá)式簡單應(yīng)用1、查找是否有符合條件的字符串bool hasStr=Regex.Match(南陽理工學(xué)院(002444), d6).Success;bool hasStr=Regex.IsMatch(南陽理工學(xué)院(002444), d6);2、查找符合條件的一個(gè)字符串的值(002444)string FindStr=Regex.Match(南陽理工學(xué)院(002444)C#程度設(shè)計(jì)(000550), d6).Valuestring findStr = Regex.Match(南陽理工學(xué)院(002444), 0-96).Value;string findStr = Regex.Match(南陽理工學(xué)院(002444), (.+).Value.TrimStart().TrimEnd();string findStr = Regex.Match(南陽理工學(xué)院(002444)C#程度設(shè)計(jì)(000550), 0-96).NextMatch().Value;3、查找所有符合條件的字符串的值foreach (Match i in Regex.Matches(南陽理工學(xué)院(002444)C#程度設(shè)計(jì)(000550), (d6) Console.WriteLine(i.Value);string str = 南陽理工學(xué)院(002444)C#程度設(shè)計(jì)(000550);Regex regex = new Regex(d6),RegexOptions.Singleline);MatchCollection matchCollection = regex.Matches(str);foreach (Match i in matchCollection) Console.WriteLine(i.Value);4、替換查找到的字符串string strReplace=Regex.Replace(南陽理工學(xué)院(002444)C#程度設(shè)計(jì)(000550), (d6), )【例】Regex類應(yīng)用using System.Text
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高血壓病人的飲食指南
- 自產(chǎn)油墨行業(yè)深度研究分析報(bào)告(2024-2030版)
- 2025年中國LED廣告屏行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y方向研究報(bào)告
- 中國攝影燈箱行業(yè)市場調(diào)查研究及投資潛力預(yù)測報(bào)告
- 2025-2030年中國淋膜耐烤紙托項(xiàng)目投資可行性研究分析報(bào)告
- 中國房產(chǎn)建筑行業(yè)發(fā)展趨勢(shì)預(yù)測及投資戰(zhàn)略研究報(bào)告
- 職業(yè)類課件情感升華
- 職業(yè)福利授課課件模板
- 職業(yè)的課件圖片
- 職業(yè)病講座課件
- 保險(xiǎn)公司保單管理制度
- 2025年中國AI翻譯行業(yè)市場全景分析及前景機(jī)遇研判報(bào)告
- 2025-2030中國酶聯(lián)免疫吸附測定(ELISA)行業(yè)市場發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025年內(nèi)蒙古眾達(dá)人力資源公司招聘題庫帶答案分析
- 水利工程隱患排查課件
- 醫(yī)藥公司廉政管理制度
- T/CEPPEA 5023-2023風(fēng)光儲(chǔ)充一體化充電站設(shè)計(jì)規(guī)范
- 碳資產(chǎn)管理與碳金融 課件 第9章 碳資產(chǎn)管理案例
- 木質(zhì)纖維素納米纖絲基水凝膠傷口敷料的制備與性能研究
- 八五普法自查自評(píng)情況報(bào)告
- 2025三季度四川經(jīng)準(zhǔn)檢驗(yàn)檢測集團(tuán)股份限公司招聘48人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
評(píng)論
0/150
提交評(píng)論