溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C 、Java、JavaScript中的正則表達(dá)式有哪些

發(fā)布時(shí)間:2021-09-28 16:57:56 來源:億速云 閱讀:126 作者:小新 欄目:互聯(lián)網(wǎng)科技

這篇文章主要介紹了C 、Java、JavaScript中的正則表達(dá)式有哪些,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

什么是正則表達(dá)式?

正則表達(dá)式(Regular Expression) 就是用某種模式去匹配一類字符串的公式。如你要在一篇文章中查找第一個(gè)字是“羅”最后一個(gè)字是“浩”的三個(gè)字的姓名,即“羅 * 浩”;那么“羅 * 浩”就是公式,也稱作 模式(Pattern) ,這篇文章就是 要匹配的串( 或叫文本 text) 。再如,你要檢查輸入的一個(gè)字符串是否是 126 郵箱的格式,你得制定一個(gè)規(guī)則去查檢,這種規(guī)則就是正則表達(dá)式。

從入門開始

我們就從上面提到的一個(gè)例子開始: 檢查一個(gè)字符串是否符合 126 郵箱的格式。

我們從 網(wǎng)易的郵箱注冊頁面 可以看到 126 郵箱的用戶名需要符合以下的格式: 6~18 個(gè)字符,可使用字母、數(shù)字、下劃線,需以字母開頭 。 我們可以定義一個(gè)模式: ^[a-zA-Z]\w{5,17}@126.com

這個(gè)模式可以這樣理解:

[a-zA-Z] :任何一個(gè) a 到 z 或 A 到 Z 的英文字母

^ :      表示以什么開頭,則 ^[a-zA-Z] 表示以字母開頭

\w :     單詞字符 [a-zA-Z_0-9] ,即 a-z 或 A-Z 或 0-9 或 _ 中的任何一個(gè)字符

{5,17} :  表示出現(xiàn) 5 到 17 次 ( 至少 5 次,不超過 17 次 ) ,則 \w{5,17} 表示 5~17 個(gè)字符。

因?yàn)檫€有一個(gè)以非數(shù)字字母開頭的字符,所以 ^[a-zA-Z]\w{5,17} 表示:“ 6~18 個(gè)字符,可使用字母、數(shù)字、下劃線,需以字母開頭 ”

@126.com : 表示符合以上規(guī)則的用戶名后跟上 @126.com 字符串,即組成一個(gè)郵箱地址。

“ ^[a-zA-Z]\w{5,17}@126.com ”就是我們所說的正則表達(dá)式,用 Java 的簡單實(shí)現(xiàn)如下:

String regex = "^[a-zA-Z]\\w{5,17}@126\\.com"; //定義匹配的規(guī)則:正則表達(dá)式
//說明:126.com中的.需要轉(zhuǎn)義\\.
String text = "ZhanSan@126fcom"; //要檢查的字符串
boolean isMatched = text.matches(regex); //判斷text是否符合規(guī)則regex
System.out.println(isMatched);

正則表達(dá)式常用符號

上面一個(gè)示例中用到的“ ^ ”、“ \w ”、“ {5,17} ”等都是正則表達(dá)式中的常用符號,這些符號在正則表達(dá)式中都有特殊的含意。下面這個(gè)表格是 Java 中的正則表達(dá)式常用符號的含意 ( 只抽取了其常用的部分進(jìn)行說明,就這些部分其實(shí)可以解決關(guān)于正則表達(dá)式的絕大多數(shù)的問題了 ) 。

模式

匹配的內(nèi)容(含意)



字符類

[abc]

a、b 或 c(簡單類)

[^abc]

任何字符,除了 a、b 或 c(否定)

[a-zA-Z]

a 到 z 或 A 到 Z,兩頭的字母包括在內(nèi)(范圍)

[a-d[m-p]]

a 到 d 或 m 到 p:[a-dm-p](并集)

[a-z&&[def]]

d、e 或 f(交集)

[a-z&&[^bc]]

a 到 z,除了 b 和 c:[ad-z](減去)

[a-z&&[^m-p]]

a 到 z,而非 m 到 p:[a-lq-z](減去)



預(yù)定義字符類

.

任何字符(與 行結(jié)束符 可能匹配也可能不匹配)

\d

數(shù)字:[0-9]

\D

非數(shù)字: [^0-9]

\s

空白字符:[ \t\n\x0B\f\r]

\S

非空白字符:[^\s]

\w

單詞字符:[a-zA-Z_0-9]

\W

非單詞字符:[^\w]



邊界匹配器

^

行的開頭

$

行的結(jié)尾

\b

單詞邊界

\B

非單詞邊界

\A

輸入的開頭

\G

上一個(gè)匹配的結(jié)尾

\Z

輸入的結(jié)尾,僅用于最后的 結(jié)束符 (如果有的話)

\z

輸入的結(jié)尾



數(shù)量詞(Greedy策略)

X?

X,一次或一次也沒有

X*

X,零次或多次

X+

X,一次或多次

X{n}

X,恰好 n 次

X{n,}

X,至少 n 次

X{n,m}

X,至少 n 次,但是不超過 m 次



邏輯運(yùn)算符

XY

X 后跟 Y

X|Y

X 或 Y

(X)

X,作為 捕獲組

這些常用的符號在各種編程語言的正則表達(dá)式中含意基本相同 ( 因?yàn)檎齽t表達(dá)式的思想是相同的 ) ,所以都可以用來參數(shù)。但不同的語言可能會有一些細(xì)小的差別,如果要針對各種編程語言,想有更精確和權(quán)威的說明,可參考其官方文檔:

C++(VS2013編譯器 ) : http://msdn.microsoft.com/zh-cn/library/bb982727.aspx#grammarsummary

Java :               http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

JavaScript :          http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp

正則表達(dá)式的使用

下面從常見的需求出發(fā)講述 C++ 、 Java 和 JavaScript 中正則表達(dá)式的使用

C++中的正則表達(dá)式

C++ 中正則表達(dá)式主要有三種實(shí)現(xiàn)方式: C 語言的實(shí)現(xiàn)方式 (C regex) , C++ 標(biāo)準(zhǔn)庫的實(shí)現(xiàn) (C++ regex) , Boost 庫的實(shí)現(xiàn) (boost regex) 。 C regex 的方式是一種面向過程的編程方式,使用起來不太方便; C++ regex 的方式因?yàn)槭菢?biāo)準(zhǔn)庫的一部分,所以可以直接使用 ( 好像 Linux 平臺下不支持 ) ,但 C++ regex 非常難用,語法要求比較嚴(yán)格,而且好多默認(rèn)的選項(xiàng)和我們正常的想法不一樣; Boost 是一個(gè)開源的第三方庫,這個(gè)庫非常優(yōu)秀,廣泛應(yīng)用于 C++ 的項(xiàng)目開發(fā)中, boost regex 非常靈活好用, C++ 開發(fā)時(shí)是大家推崇的一種方式。

關(guān)于 boost regex 的用法,在后繼的文章將會進(jìn)一步介紹,現(xiàn)在以 C++ regex 的方式列舉一個(gè)使用樣例。

1.驗(yàn)證ip 地址

#include <regex>
#include <iostream>
#include <string>
bool IsIpV4Address(const std::string& strIp)
{
 //驗(yàn)證IP地址的模式,這里"\."中的"\"是轉(zhuǎn)義字符,表示這是一個(gè).
 const std::regex pattern("(\\d{1,3}){1}\.(\\d{1,3}){1}\.(\\d{1,3}){1}\.(\\d{1,3}){1}");
 //匹配驗(yàn)證
 return std::regex_match(strIp, pattern);
}
int main()
{
 std::string strIp1 = "134.34.34.4";//192.168.1.1
 std::string strIp2 = "192.168.255";
 std::cout << strIp1 << " : " << (IsIpV4Address(strIp1) ? "valid" : "invalid") << std::endl;
 std::cout << strIp2 << " : " << (IsIpV4Address(strIp2) ? "valid" : "invalid") << std::endl;
 return 0;
}

Java中的正則表達(dá)式

1.驗(yàn)證一個(gè)字符串是否為URL

public static boolean isUrl(String text) {
 String regex = "^http://([\\w-]+.)+[\\w-]+(/[\\w-./?%&=#]*)?$";
 return text.matches(regex);
}

2.判斷一個(gè)文本中有多少個(gè)URL ,并將所有的 URL 加上超鏈接 .

如以下文本:

C++(VS 2013 編譯器 ) : http://msdn.microsoft.com/zh-cn/library/bb982727.aspx#grammarsummary

Java :               http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

JavaScript :          http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp

添加鏈接后變成:

C++(VS 2013 編譯器 ) : <a href= ” http://msdn.microsoft.com/zh-cn/library/bb982727.aspx#grammarsummary

” > http://msdn.microsoft.com/zh-cn/library/bb982727.aspx#grammarsummary </a>

Java :               <a href= ” http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

” > http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html </a>

JavaScript :          <a href= ” http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp

” > http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp </a>

/**
 * 給一個(gè)字符串添加鏈接
 * @param text 要添加鏈接的字符串
 * @param url 鏈接的URL
 * @return 添加鏈接后的字符串
 */
public static String AddHref(String text, String url) {
 return "<a href=\"" + url + "\">" + text + "</a>";
}
/**
 * 查找文本中的URL字符串,并將其添加鏈接
 * @param text 需要查找的文本
 * @return 添加鏈接后的文本
 */
public static String AddLinkToText(String text) {
 Pattern pattern = Pattern.compile("http://([\\w-]+.)+[\\w-]+(/[\\w-./?%&=#]*)?");
 Matcher matcher = pattern.matcher(text);
 StringBuffer sb = new StringBuffer();  //定義一個(gè)字符緩沖區(qū),用于保存新的文本
 while (matcher.find()) {
  String matchedSubStr = matcher.group(); //提取出查找到的子串
  matcher.appendReplacement(sb, AddHref(matchedSubStr, matchedSubStr)); //將找到的子串添加鏈接后塞到字符緩沖區(qū)內(nèi)
 }
 matcher.appendTail(sb);
 return sb.toString();
}

JavaScript中的正則表達(dá)式

JavaScript 中的正則表達(dá)式是通過 RegExp 對象實(shí)現(xiàn)的。 RegExp 對象的創(chuàng)建有三種方式:

精簡方式:

/pattern/attributes

new 方式:

new RegExp(pattern, attributes);

函數(shù)調(diào)用的方式:

RegExp(pattern, attributes);

參數(shù)pattern可以是一個(gè)模式串,也可以是一個(gè)RegExp對象,如果pattern本身就是RegExp的對象,則attributes參數(shù)將不起作用(新創(chuàng)建的對象的必發(fā)與pattern對象相同。),需要省略,如果不省略會拋TypeError 異常。

參數(shù)attributes有三種屬性"g"、"i" 和 "m",分別用于指定全局匹配、區(qū)分大小寫的匹配和多行匹配。

RegExp主要有三個(gè)方法:

compile

編譯正則表達(dá)式,可用于改變和重新編譯正則表達(dá)式。

exec

檢索字符串中指定的值。返回找到的值,并確定其位置。

test

檢索字符串中是否有指定的值。返回  true  或  false 。

1.驗(yàn)證字符串是否為數(shù)字

<script type="text/javascript">
 function isNumber(text) {
  var pattern = new RegExp("^\\d*$");
  return pattern.test(text);
 }
 var value1 = "1234";
 document.write(value1 + " is Numed:" + isNumber(value1));
</script>

2. 郵箱格式:

<script type="text/javascript">
 function isEmail(text) {
  var reg = /^([\w-.])+@([\w-])+((\.[\w-]{2,3}){1,2})$/;
  return reg.test(text);
 }
 var value2 = "Zhang.San@163.com";
 document.write(value2 + " is Email:" + isEmail(value2));
</script>

3.將一個(gè)文本中的所有郵箱地址和在文本中的位置打印到頁面

<script type="text/javascript">
 function PrintEmail(text) {
 //匹配的模式
 var reg = RegExp("([\\w-.])+@([\\w-])+((\.[\\w-]{2,3}){1,2})", "g");
 var result; //保存結(jié)果
 while ((result = reg.exec(text)) != null) {
  document.write(result[0] + "<br/>" + result.index);
  document.write("<br/><br/>");
 }
 }
 var text = "張三 Zhang.San@163.com; 李四 Li_si@126.com;王五 WangWu@gmail.com.cn" ;
 PrintEmail(text);
</script>

應(yīng)用場景

數(shù)據(jù)驗(yàn)證:

例如,可以檢查輸入的字符串,看其是否為電話號碼格式,或是否為郵箱格式。 這在網(wǎng)頁的表單輸入中經(jīng)常用到。

查找子串:

可以查找文檔內(nèi)( 或一個(gè)字符串內(nèi) ) 符合指定模式的子串。

替換文本:

可以使用正則表達(dá)式來識別文檔中的特定內(nèi)容,完全刪除該部分內(nèi)容或者用其他字符串來替換它。

使用工具:

如 Word 、 NotePad++ 、 EditPlus 等文字編輯器中的查找功能都支持正則表達(dá)式,用正則表達(dá)式你就可以實(shí)現(xiàn)更加多樣化的查找。還有像 VS 、 CodeBlock 、 Eclipse 、 Intellij Idea 等開發(fā)工具的 IDE 的查找替換功能也都支持正則表達(dá)式,用它你可以修改變量名,調(diào)整代碼格式,統(tǒng)計(jì)代碼行數(shù)等。

常用正則表達(dá)式總結(jié)

常用的正則表達(dá)式已經(jīng)有很多人做了總結(jié)了,在網(wǎng)上能夠找到非常多,我就沒有再寫的必要了。下面貼出我覺得還不錯(cuò)的一個(gè)總結(jié)。

此部分內(nèi)容為轉(zhuǎn)載,來自: http://www.cnblogs.com/zxin/archive/2013/01/26/2877765.html

一、校驗(yàn)數(shù)字的表達(dá)式

 1 數(shù)字:^[0-9]*$
 2 n位的數(shù)字:^\d{n}$
 3 至少n位的數(shù)字:^\d{n,}$
 4 m-n位的數(shù)字:^\d{m,n}$
 5 零和非零開頭的數(shù)字:^(0|[1-9][0-9]*)$
 6 非零開頭的最多帶兩位小數(shù)的數(shù)字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
 7 帶1-2位小數(shù)的正數(shù)或負(fù)數(shù):^(\-)?\d+(\.\d{1,2})?$
 8 正數(shù)、負(fù)數(shù)、和小數(shù):^(\-|\+)?\d+(\.\d+)?$
 9 有兩位小數(shù)的正實(shí)數(shù):^[0-9]+(.[0-9]{2})?$
10 有1~3位小數(shù)的正實(shí)數(shù):^[0-9]+(.[0-9]{1,3})?$
11 非零的正整數(shù):^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
12 非零的負(fù)整數(shù):^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$
13 非負(fù)整數(shù):^\d+$ 或 ^[1-9]\d*|0$
14 非正整數(shù):^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
15 非負(fù)浮點(diǎn)數(shù):^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
16 非正浮點(diǎn)數(shù):^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
17 正浮點(diǎn)數(shù):^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
18 負(fù)浮點(diǎn)數(shù):^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
19 浮點(diǎn)數(shù):^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

二、校驗(yàn)字符的表達(dá)式

 1 漢字:^[\u4e00-\u9fa5]{0,}$
 2 英文和數(shù)字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
 3 長度為3-20的所有字符:^.{3,20}$
 4 由26個(gè)英文字母組成的字符串:^[A-Za-z]+$
 5 由26個(gè)大寫英文字母組成的字符串:^[A-Z]+$
 6 由26個(gè)小寫英文字母組成的字符串:^[a-z]+$
 7 由數(shù)字和26個(gè)英文字母組成的字符串:^[A-Za-z0-9]+$
 8 由數(shù)字、26個(gè)英文字母或者下劃線組成的字符串:^\w+$ 或 ^\w{3,20}$
 9 中文、英文、數(shù)字包括下劃線:^[\u4E00-\u9FA5A-Za-z0-9_]+$
10 中文、英文、數(shù)字但不包括下劃線等符號:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
11 可以輸入含有^%&',;=?$\"等字符:[^%&',;=?$\x22]+
12 禁止輸入含有~的字符:[^~\x22]+

三、特殊需求表達(dá)式

 1 Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
 2 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
 3 InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
 4 手機(jī)號碼:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
 5 電話號碼("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
 6 國內(nèi)電話號碼(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
 7 身份證號(15位、18位數(shù)字):^\d{15}|\d{18}$
 8 短身份證號碼(數(shù)字、字母x結(jié)尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
 9 帳號是否合法(字母開頭,允許5-16字節(jié),允許字母數(shù)字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
10 密碼(以字母開頭,長度在6~18之間,只能包含字母、數(shù)字和下劃線):^[a-zA-Z]\w{5,17}$
11 強(qiáng)密碼(必須包含大小寫字母和數(shù)字的組合,不能使用特殊字符,長度在8-10之間):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ 
12 日期格式:^\d{4}-\d{1,2}-\d{1,2}
13 一年的12個(gè)月(01~09和1~12):^(0?[1-9]|1[0-2])$
14 一個(gè)月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
15 錢的輸入格式:
16    1.有四種錢的表示形式我們可以接受:"10000.00" 和 "10,000.00", 和沒有 "分" 的 "10000" 和 "10,000":^[1-9][0-9]*$
17    2.這表示任意一個(gè)不以0開頭的數(shù)字,但是,這也意味著一個(gè)字符"0"不通過,所以我們采用下面的形式:^(0|[1-9][0-9]*)$
18    3.一個(gè)0或者一個(gè)不以0開頭的數(shù)字.我們還可以允許開頭有一個(gè)負(fù)號:^(0|-?[1-9][0-9]*)$
19    4.這表示一個(gè)0或者一個(gè)可能為負(fù)的開頭不為0的數(shù)字.讓用戶以0開頭好了.把負(fù)號的也去掉,因?yàn)殄X總不能是負(fù)的吧.下面我們要加的是說明可能的小數(shù)部分:^[0-9]+(.[0-9]+)?$
20    5.必須說明的是,小數(shù)點(diǎn)后面至少應(yīng)該有1位數(shù),所以"10."是不通過的,但是 "10" 和 "10.2" 是通過的:^[0-9]+(.[0-9]{2})?$
21    6.這樣我們規(guī)定小數(shù)點(diǎn)后面必須有兩位,如果你認(rèn)為太苛刻了,可以這樣:^[0-9]+(.[0-9]{1,2})?$
22    7.這樣就允許用戶只寫一位小數(shù).下面我們該考慮數(shù)字中的逗號了,我們可以這樣:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$
23    8.1到3個(gè)數(shù)字,后面跟著任意個(gè) 逗號+3個(gè)數(shù)字,逗號成為可選,而不是必須:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$
24    備注:這就是最終結(jié)果了,別忘了"+"可以用"*"替代如果你覺得空字符串也可以接受的話(奇怪,為什么?)最后,別忘了在用函數(shù)時(shí)去掉去掉那個(gè)反斜杠,一般的錯(cuò)誤都在這里
25 xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
26 中文字符的正則表達(dá)式:[\u4e00-\u9fa5]
27 雙字節(jié)字符:[^\x00-\xff]    (包括漢字在內(nèi),可以用來計(jì)算字符串的長度(一個(gè)雙字節(jié)字符長度計(jì)2,ASCII字符計(jì)1))
28 空白行的正則表達(dá)式:\n\s*\r    (可以用來刪除空白行)
29 HTML標(biāo)記的正則表達(dá)式:<(\S*?)[^>]*>.*?</\1>|<.*? />    (網(wǎng)上流傳的版本太糟糕,上面這個(gè)也僅僅能部分,對于復(fù)雜的嵌套標(biāo)記依舊無能為力)
30 首尾空白字符的正則表達(dá)式:^\s*|\s*$或(^\s*)|(\s*$)    (可以用來刪除行首行尾的空白字符(包括空格、制表符、換頁符等等),非常有用的表達(dá)式)
31 騰訊QQ號:[1-9][0-9]{4,}    (騰訊QQ號從10000開始)
32 中國郵政編碼:[1-9]\d{5}(?!\d)    (中國郵政編碼為6位數(shù)字)
33 IP地址:\d+\.\d+\.\d+\.\d+    (提取IP地址時(shí)有用)
34 IP地址:((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))    (由@飛龍三少 提供,感謝共享)

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“C 、Java、JavaScript中的正則表達(dá)式有哪些”這篇文章對大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)
推薦閱讀:
  1. c++常用庫
  2. C++開源庫

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI