亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Java 正則表達式詳解

Achilles / 1597人閱讀

摘要:正則表達式可以用于搜索編輯和操作文本。模式分組后會在正則表達式中創(chuàng)建反向引用。使正則忽略大小寫。注意方法不支持正則表達式。第三步,通過匹配對象,根據(jù)正則表達式操作字符串。正則表達式匹配數(shù)字范圍時,首先要確定最大值與最小值,最后寫中間值。

版權(quán)聲明:本文由吳仙杰創(chuàng)作整理,轉(zhuǎn)載請注明出處:https://segmentfault.com/a/1190000009162306
1. 正則表達式 1.1 什么是正則表達式

正則表達式
: 定義一個搜索模式的字符串。

正則表達式可以用于搜索、編輯和操作文本。

正則對文本的分析或修改過程為:首先正則表達式應(yīng)用的是文本字符串(text/string),它會以定義的模式從左到右匹配文本,每個源字符只匹配一次。

1.2 示例
正則表達式 匹配
this is text 精確匹配字符串 "this is text"
thiss+iss+text 匹配單詞 "this" 后跟一個或多個空格字符,后跟詞 "is" 后跟一個或多個空格字符,后跟詞 "text"
^d+(.d+)? ^ 定義模式必須匹配字符串的開始,d+ 匹配一個或多個數(shù)字,? 表明小括號內(nèi)的語句是可選的,. 匹配 ".",小括號表示分組。例如匹配:"5"、"1.5" 和 "2.21"
2. 正則表達式的編寫規(guī)則 2.1 常見匹配符號
正則表達式 描述
. 匹配所有單個字符,除了換行符(Linux 中換行是 ,Windows 中換行是
^regex 正則必須匹配字符串開頭
regex$ 正則必須匹配字符串結(jié)尾
[abc] 復(fù)選集定義,匹配字母 a 或 b 或 c
[abc][vz] 復(fù)選集定義,匹配字母 a 或 b 或 c,后面跟著 v 或 z
[^abc] 當(dāng)插入符 ^ 在中括號中以第一個字符開始顯示,則表示否定模式。此模式匹配所有字符,除了 a 或 b 或 c
[a-d1-7] 范圍匹配,匹配字母 a 到 d 和數(shù)字從 1 到 7 之間,但不匹配 d1
XZ 匹配 X 后直接跟著 Z
X|Z 匹配 X 或 Z
2.2 元字符

元字符是一個預(yù)定義的字符。

正則表達式 描述
d 匹配一個數(shù)字,是 [0-9] 的簡寫
D 匹配一個非數(shù)字,是 [^0-9] 的簡寫
s 匹配一個空格,是 [ x0b f] 的簡寫
S 匹配一個非空格
w 匹配一個單詞字符(大小寫字母、數(shù)字、下劃線),是 [a-zA-Z_0-9] 的簡寫
W 匹配一個非單詞字符(除了大小寫字母、數(shù)字、下劃線之外的字符),等同于 [^w]
2.3 限定符

限定符定義了一個元素可以發(fā)生的頻率。

正則表達式 描述 舉例
* 匹配 >=0 個,是 {0,} 的簡寫 X* 表示匹配零個或多個字母 X,.* 表示匹配任何字符串
+ 匹配 >=1 個,是 {1,} 的簡寫 X+ 表示匹配一個或多個字母 X
? 匹配 1 個或 0 個,是 {0,1} 的簡寫 X? 表示匹配 0 個或 1 個字母 X
{X} 只匹配 X 個字符 d{3} 表示匹配 3 個數(shù)字,.{10} 表示匹配任何長度是 10 的字符串
{X,Y} 匹配 >=X 且 <=Y 個 d{1,4} 表示匹配至少 1 個最多 4 個數(shù)字
*? 如果 ? 是限定符 *+?{} 后面的第一個字符,那么表示非貪婪模式(盡可能少的匹配字符),而不是默認(rèn)的貪婪模式
2.4 分組和反向引用

小括號 () 可以達到對正則表達式進行分組的效果。

模式分組后會在正則表達式中創(chuàng)建反向引用。反向引用會保存匹配模式分組的字符串片斷,這使得我們可以獲取并使用這個字符串片斷。

在以正則表達式替換字符串的語法中,是通過 $ 來引用分組的反向引用,$0 是匹配完整模式的字符串(注意在 JavaScript 中是用 $& 表示);$1 是第一個分組的反向引用;$2 是第二個分組的反向引用,以此類推。

示例:

package com.wuxianjiezh.demo.regex;

public class RegexTest {

    public static void main(String[] args) {
        // 去除單詞與 , 和 . 之間的空格
        String Str = "Hello , World .";
        String pattern = "(w)(s+)([.,])";
        // $0 匹配 `(w)(s+)([.,])` 結(jié)果為 `o空格,` 和 `d空格.`
        // $1 匹配 `(w)` 結(jié)果為 `o` 和 `d`
        // $2 匹配 `(s+)` 結(jié)果為 `空格` 和 `空格`
        // $3 匹配 `([.,])` 結(jié)果為 `,` 和 `.`
        System.out.println(Str.replaceAll(pattern, "$1$3")); // Hello, World.
    }
}

上面的例子中,我們使用了 [.] 來匹配普通字符 . 而不需要使用 [.]。因為正則對于 [] 中的 .,會自動處理為 [.],即普通字符 . 進行匹配。

2.4.1 僅分組但無反向引用

當(dāng)我們在小括號 () 內(nèi)的模式開頭加入 ?:,那么表示這個模式僅分組,但不創(chuàng)建反向引用。

示例:

package com.wuxianjiezh.regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTest {

    public static void main(String[] args) {
        String str = "img.jpg";
        // 分組且創(chuàng)建反向引用
        Pattern pattern = Pattern.compile("(jpg|png)");
        Matcher matcher = pattern.matcher(str);
        while (matcher.find()) {
            System.out.println(matcher.group());
            System.out.println(matcher.group(1));
        }
    }
}

運行結(jié)果:

jpg
jpg

若源碼改為:

package com.wuxianjiezh.regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTest {

    public static void main(String[] args) {
        String str = "img.jpg";
        // 分組但不創(chuàng)建反向引用
        Pattern pattern = Pattern.compile("(?:jpg|png)");
        Matcher matcher = pattern.matcher(str);
        while (matcher.find()) {
            System.out.println(matcher.group());
            System.out.println(matcher.group(1));
        }
    }
}

運行結(jié)果:

jpg
Exception in thread "main" java.lang.IndexOutOfBoundsException: No group 1
    at java.util.regex.Matcher.group(Matcher.java:538)
    at com.wuxianjiezh.regex.RegexTest.main(RegexTest.java:15)
2.4.2 分組的反向引用副本

Java 中可以在小括號中使用 ? 將小括號中匹配的內(nèi)容保存為一個名字為 name 的副本。

示例:

package com.wuxianjiezh.regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTest {

    public static void main(String[] args) {
        String str = "@wxj 你好啊";
        Pattern pattern = Pattern.compile("@(?w+s)"); // 保存一個副本
        Matcher matcher = pattern.matcher(str);
        while (matcher.find()) {
            System.out.println(matcher.group());
            System.out.println(matcher.group(1));
            System.out.println(matcher.group("first"));
        }
    }
}

運行結(jié)果:

@wxj 
wxj 
wxj 
2.5 否定先行斷言(Negative lookahead)

我們可以創(chuàng)建否定先行斷言模式的匹配,即某個字符串后面不包含另一個字符串的匹配模式。

否定先行斷言模式通過 (?!pattern) 定義。比如,我們匹配后面不是跟著 "b" 的 "a":

a(?!b)
2.6 指定正則表達式的模式

可以在正則的開頭指定模式修飾符。

(?i) 使正則忽略大小寫。

(?s) 表示單行模式("single line mode")使正則的 . 匹配所有字符,包括換行符。

(?m) 表示多行模式("multi-line mode"),使正則的 ^$ 匹配字符串中每行的開始和結(jié)束。

2.7 Java 中的反斜杠

反斜杠 在 Java 中表示轉(zhuǎn)義字符,這意味著 在 Java 擁有預(yù)定義的含義。

這里例舉兩個特別重要的用法:

在匹配 .{[(?$^* 這些特殊字符時,需要在前面加上 ,比如匹配 . 時,Java 中要寫為 .,但對于正則表達式來說就是 .。

在匹配 時,Java 中要寫為 ,但對于正則表達式來說就是 。

注意:Java 中的正則表達式字符串有兩層含義,首先 Java 字符串轉(zhuǎn)義出符合正則表達式語法的字符串,然后再由轉(zhuǎn)義后的正則表達式進行模式匹配。

2.8 易錯點示例

[jpg|png] 代表匹配 jpgpng 中的任意一個字符。

(jpg|png) 代表匹配 jpgpng

3. 在字符串中使用正則表達式 3.1 內(nèi)置的字符串正則處理方法

在 Java 中有四個內(nèi)置的運行正則表達式的方法,分別是 matches()split())、replaceFirst()、replaceAll()。注意 replace() 方法不支持正則表達式。

方法 描述
s.matches("regex") 當(dāng)僅且當(dāng)正則匹配整個字符串時返回 true
s.split("regex") 按匹配的正則表達式切片字符串
s.replaceFirst("regex", "replacement") 替換首次匹配的字符串片段
s.replaceAll("regex", "replacement") 替換所有匹配的字符
3.2 示例

示例代碼:

package com.wuxianjiezh.regex;

public class RegexTest {

    public static void main(String[] args) {
        System.out.println("wxj".matches("wxj"));
        System.out.println("----------");

        String[] array = "w x j".split("s");
        for (String item : array) {
            System.out.println(item);
        }
        System.out.println("----------");

        System.out.println("w x j".replaceFirst("s", "-"));
        System.out.println("----------");

        System.out.println("w x j".replaceAll("s", "-"));
    }
}

運行結(jié)果:

true
----------
w
x
j
----------
w-x j
----------
w-x-j
4. 模式和匹配

Java 中使用正則表達式需要用到兩個類,分別為 java.util.regex.Patternjava.util.regex.Matcher。

第一步,通過正則表達式創(chuàng)建模式對象 Pattern。

第二步,通過模式對象 Pattern,根據(jù)指定字符串創(chuàng)建匹配對象 Matcher。

第三步,通過匹配對象 Matcher,根據(jù)正則表達式操作字符串。

來個例子,加深理解:

package com.wuxianjiezh.regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTest {

    public static void main(String[] args) {
        String text = "Hello Regex!";

        Pattern pattern = Pattern.compile("w+");
        // Java 中忽略大小寫,有兩種寫法:
        // Pattern pattern = Pattern.compile("w+", Pattern.CASE_INSENSITIVE);
        // Pattern pattern = Pattern.compile("(?i)w+"); // 推薦寫法
        Matcher matcher = pattern.matcher(text);
        // 遍例所有匹配的序列
        while (matcher.find()) {
            System.out.print("Start index: " + matcher.start());
            System.out.print(" End index: " + matcher.end() + " ");
            System.out.println(matcher.group());
        }
        // 創(chuàng)建第兩個模式,將空格替換為 tab
        Pattern replace = Pattern.compile("s+");
        Matcher matcher2 = replace.matcher(text);
        System.out.println(matcher2.replaceAll("	"));
    }
}

運行結(jié)果:

Start index: 0 End index: 5 Hello
Start index: 6 End index: 11 Regex
Hello    Regex!
5. 若干個常用例子 5.1 中文的匹配

[u4e00-u9fa5]+ 代表匹配中文字。

package com.wuxianjiezh.regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTest {

    public static void main(String[] args) {
        String str = "閑人到人間";
        Pattern pattern = Pattern.compile("[u4e00-u9fa5]+");
        Matcher matcher = pattern.matcher(str);
        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}

運行結(jié)果:

閑人到人間
5.2 數(shù)字范圍的匹配

比如,匹配 1990 到 2017。

注意:這里有個新手易范的錯誤,就是正則 [1990-2017],實際這個正則只匹配 01279 中的任一個字符。

正則表達式匹配數(shù)字范圍時,首先要確定最大值與最小值,最后寫中間值。

正確的匹配方式:

package com.wuxianjiezh.regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTest {

    public static void main(String[] args) {
        String str = "1990
2010
2017";
        // 這里應(yīng)用了 (?m) 的多行匹配模式,只為方便我們測試輸出
        // "^1990$|^199[1-9]$|^20[0-1][0-6]$|^2017$" 為判斷 1990-2017 正確的正則表達式
        Pattern pattern = Pattern.compile("(?m)^1990$|^199[1-9]$|^20[0-1][0-6]$|^2017$");
        Matcher matcher = pattern.matcher(str);
        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}

運行結(jié)果:

1990
2010
2017
5.3 img 標(biāo)簽的匹配

比如,獲取圖片文件內(nèi)容,這里我們考慮了一些不規(guī)范的 img 標(biāo)簽寫法:

package com.wuxianjiezh.regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTest {

    public static void main(String[] args) {
        String str = "" +
                "";
        // 這里我們考慮了一些不規(guī)范的 img 標(biāo)簽寫法,比如:空格、引號
        Pattern pattern = Pattern.compile("");
        Matcher matcher = pattern.matcher(str);
        while (matcher.find()) {
            System.out.println(matcher.group("src"));
        }
    }
}

運行結(jié)果:

aaa.jpg
bbb.png
ccc.png
5.4 貪婪與非貪婪模式的匹配

比如,獲取 div 標(biāo)簽中的文本內(nèi)容:

package com.wuxianjiezh.regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTest {

    public static void main(String[] args) {
        String str = "
文章標(biāo)題
發(fā)布時間
"; // 貪婪模式 Pattern pattern = Pattern.compile("
(?.+)</div>"); Matcher matcher = pattern.matcher(str); while (matcher.find()) { System.out.println(matcher.group("title")); } System.out.println("--------------"); // 非貪婪模式 pattern = Pattern.compile("<div>(?<title>.+?)</div>"); matcher = pattern.matcher(str); while (matcher.find()) { System.out.println(matcher.group("title")); } } }</pre> <p>運行結(jié)果:</p> <pre>文章標(biāo)題</div><div>發(fā)布時間 -------------- 文章標(biāo)題 發(fā)布時間</pre> <b>6. 推薦兩個在線正則工具</b> <p>JavaScript、Python 等的在線表達式工具:https://regex101.com/ </p> <p>Java 在線表達式工具:http://www.regexplanet.com/advanced/java/index.html </p> <b>7. 參考</b> <p>Java Regex - Tutorial</p> </div> <div id="dnkpnhlp" class="mt-64 tags-seach" > <div id="dnkpnhlp" class="tags-info"> <a style="width:120px;" title="云服務(wù)器" href="http://www.ezyhdfw.cn/site/active/kuaijiesale.html?ytag=seo">云服務(wù)器</a> <a style="width:120px;" title="GPU云服務(wù)器" href="http://www.ezyhdfw.cn/site/product/gpu.html">GPU云服務(wù)器</a> <a style="width:120px;" title="正則表達式j(luò)ava" href="http://www.ezyhdfw.cn/yun/tag/zhengzebiaodashijava/">正則表達式j(luò)ava</a> <a style="width:120px;" title="java正則表達式教程" href="http://www.ezyhdfw.cn/yun/tag/javazhengzebiaodashijiaocheng/">java正則表達式教程</a> <a style="width:120px;" title="java js正則表達式" href="http://www.ezyhdfw.cn/yun/tag/java jszhengzebiaodashi/">java js正則表達式</a> <a style="width:120px;" title="java正則表達式t" href="http://www.ezyhdfw.cn/yun/tag/javazhengzebiaodashit/">java正則表達式t</a> </div> </div> <div id="dnkpnhlp" class="entry-copyright mb-30"> <p class="mb-15"> 文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。</p> <p>轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/69899.html</p> </div> <ul class="pre-next-page"> <li id="dnkpnhlp" class="ellipsis"><a class="hpf" href="http://www.ezyhdfw.cn/yun/69898.html">上一篇:(八)java多線程之Semaphore</a></li> <li id="dnkpnhlp" class="ellipsis"><a class="hpf" href="http://www.ezyhdfw.cn/yun/69900.html">下一篇:java根據(jù)模板動態(tài)生成PDF</a></li> </ul> </div> <div id="dnkpnhlp" class="about_topicone-mid"> <h3 class="top-com-title mb-0"><span data-id="0">相關(guān)文章</span></h3> <ul class="com_white-left-mid atricle-list-box"> <li> <div id="dnkpnhlp" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://www.ezyhdfw.cn/yun/87811.html"><b><em>Java</em>script字符串常用方法<em>詳解</em></b></a></h2> <p class="ellipsis2 good">摘要:屬性里的字符串類似于數(shù)組,都是一個一個字符拼湊在一起組成的,因此可以用屬性取得字符串的長度字符串常用的一些方法返回字符串的第個字符,如果不在之間,則返回一個空字符串。如果匹配成功,則返回正則表達式在字符串中首次匹配項的索引否則,返回。 字符串 字符串就是一個或多個排列在一起的字符,放在單引號或雙引號之中。 abc abc length屬性js里的字符串類似于數(shù)組,都是一個一個字...</p> <div id="dnkpnhlp" class="com_white-left-info"> <div id="dnkpnhlp" class="com_white-left-infol"> <a href="http://www.ezyhdfw.cn/yun/u-952.html"><img src="http://www.ezyhdfw.cn/yun/data/avatar/000/00/09/small_000000952.jpg" alt=""><span id="dnkpnhlp" class="layui-hide64">Wildcard</span></a> <time datetime="">2019-08-21 14:08</time> <span><i class="fa fa-commenting"></i>評論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div id="dnkpnhlp" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://www.ezyhdfw.cn/yun/68337.html"><b>后端ing</b></a></h2> <p class="ellipsis2 good">摘要:當(dāng)活動線程核心線程非核心線程達到這個數(shù)值后,后續(xù)任務(wù)將會根據(jù)來進行拒絕策略處理。線程池工作原則當(dāng)線程池中線程數(shù)量小于則創(chuàng)建線程,并處理請求。當(dāng)線程池中的數(shù)量等于最大線程數(shù)時默默丟棄不能執(zhí)行的新加任務(wù),不報任何異常。 spring-cache使用記錄 spring-cache的使用記錄,坑點記錄以及采用的解決方案 深入分析 java 線程池的實現(xiàn)原理 在這篇文章中,作者有條不紊的將 ja...</p> <div id="dnkpnhlp" class="com_white-left-info"> <div id="dnkpnhlp" class="com_white-left-infol"> <a href="http://www.ezyhdfw.cn/yun/u-1389.html"><img src="http://www.ezyhdfw.cn/yun/data/avatar/000/00/13/small_000001389.jpg" alt=""><span id="dnkpnhlp" class="layui-hide64">roadtogeek</span></a> <time datetime="">2019-08-15 13:49</time> <span><i class="fa fa-commenting"></i>評論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div id="dnkpnhlp" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://www.ezyhdfw.cn/yun/70539.html"><b><em>java</em><em>正則</em>表式的使用</b></a></h2> <p class="ellipsis2 good">摘要:直接使用正則表達式對輸入的字符串進行匹配,匹配成功則返回使用正則表示式,進行字符串分割進行匹配操作,如果匹配成功,這三個方法都會返回其中,是在源字符串中找出和正則表達式匹配的字符串。 概念 正則表達式 在閱讀本文前,你應(yīng)該已經(jīng)了解了正則表達式的基本概念以及如何書寫正則表達式。如果對正則表達式不是太了解,或者想更深入地了解正則表示式,請點擊這里。 捕獲組 捕獲組能夠讓我們方便地從正則表達...</p> <div id="dnkpnhlp" class="com_white-left-info"> <div id="dnkpnhlp" class="com_white-left-infol"> <a href="http://www.ezyhdfw.cn/yun/u-149.html"><img src="http://www.ezyhdfw.cn/yun/data/avatar/000/00/01/small_000000149.jpg" alt=""><span id="dnkpnhlp" class="layui-hide64">zoomdong</span></a> <time datetime="">2019-08-16 10:49</time> <span><i class="fa fa-commenting"></i>評論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div id="dnkpnhlp" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://www.ezyhdfw.cn/yun/88131.html"><b><em>正則</em><em>表<em>達式</em></em>前端使用手冊</b></a></h2> <p class="ellipsis2 good">摘要:非貪婪模式盡可能少的匹配所搜索的字符串,而默認(rèn)的貪婪模式則盡可能多的匹配所搜索的字符串。 導(dǎo)讀 你有沒有在搜索文本的時候絞盡腦汁, 試了一個又一個表達式, 還是不行. 你有沒有在表單驗證的時候, 只是做做樣子(只要不為空就好), 然后燒香拜佛, 虔誠祈禱, 千萬不要出錯. 你有沒有在使用sed 和 grep 命令的時候, 感覺莫名其妙, 明明應(yīng)該支持的元字符, 卻就是匹配不到. 甚至,...</p> <div id="dnkpnhlp" class="com_white-left-info"> <div id="dnkpnhlp" class="com_white-left-infol"> <a href="http://www.ezyhdfw.cn/yun/u-1241.html"><img src="http://www.ezyhdfw.cn/yun/data/avatar/000/00/12/small_000001241.jpg" alt=""><span id="dnkpnhlp" class="layui-hide64">zhoutao</span></a> <time datetime="">2019-08-21 15:12</time> <span><i class="fa fa-commenting"></i>評論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div id="dnkpnhlp" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://www.ezyhdfw.cn/yun/119616.html"><b>軟件接口測試工具Jmeter使用核心<em>詳解</em>【建議收藏】</b></a></h2> <p class="ellipsis2 good">用Jmeter做接口測試只需要掌握幾個核心功能就可以了。 并不一定要把它所有的功能都掌握,先掌握核心功能入行,然后再根據(jù)工作需要和職業(yè)規(guī)劃來學(xué)習(xí)更多的內(nèi)容。這篇文章在前面接口測試框架(測試計劃--->線程組--->請求--->查看結(jié)果樹)的前提下,來介紹必須要掌握的幾個核心功能,力求用最短的時間取得最大的成果。 在前面的文章中我提到,用Jmeter做接口測試的核心是單接口測試的參數(shù)化和關(guān)聯(lián)接口測試...</p> <div id="dnkpnhlp" class="com_white-left-info"> <div id="dnkpnhlp" class="com_white-left-infol"> <a href="http://www.ezyhdfw.cn/yun/u-149.html"><img src="http://www.ezyhdfw.cn/yun/data/avatar/000/00/01/small_000000149.jpg" alt=""><span id="dnkpnhlp" class="layui-hide64">zoomdong</span></a> <time datetime="">2021-09-09 09:32</time> <span><i class="fa fa-commenting"></i>評論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> </ul> </div> <div id="dnkpnhlp" class="topicone-box-wangeditor"> <h3 class="top-com-title mb-64"><span>發(fā)表評論</span></h3> <div id="dnkpnhlp" class="xcp-publish-main flex_box_zd"> <div id="dnkpnhlp" class="unlogin-pinglun-box"> <a href="javascript:login()" class="grad">登陸后可評論</a> </div> </div> </div> <div id="dnkpnhlp" class="site-box-content"> <div id="dnkpnhlp" class="site-content-title"> <h3 class="top-com-title mb-64"><span>0條評論</span></h3> </div> <div id="dnkpnhlp" class="pages"></ul></div> </div> </div> <div id="dnkpnhlp" class="layui-col-md4 layui-col-lg3 com_white-right site-wrap-right"> <div id="dnkpnhlp" class=""> <div id="dnkpnhlp" class="com_layuiright-box user-msgbox"> <a href="http://www.ezyhdfw.cn/yun/u-1617.html"><img src="http://www.ezyhdfw.cn/yun/data/avatar/000/00/16/small_000001617.jpg" alt=""></a> <h3><a href="http://www.ezyhdfw.cn/yun/u-1617.html" rel="nofollow">Achilles</a></h3> <h6>男<span>|</span>高級講師</h6> <div id="dnkpnhlp" class="flex_box_zd user-msgbox-atten"> <a href="javascript:attentto_user(1617)" id="attenttouser_1617" class="grad follow-btn notfollow attention">我要關(guān)注</a> <a href="javascript:login()" title="發(fā)私信" >我要私信</a> </div> <div id="dnkpnhlp" class="user-msgbox-list flex_box_zd"> <h3 class="hpf">TA的文章</h3> <a href="http://www.ezyhdfw.cn/yun/ut-1617.html" class="box_hxjz">閱讀更多</a> </div> <ul class="user-msgbox-ul"> <li><h3 class="ellipsis"><a href="http://www.ezyhdfw.cn/yun/124560.html">ITLDC:黑五促銷活動,新加坡/美國/荷蘭/波蘭/烏克蘭vps等11個機房首年五折僅€16.5,不</a></h3> <p>閱讀 1242<span>·</span>2021-11-23 10:10</p></li> <li><h3 class="ellipsis"><a href="http://www.ezyhdfw.cn/yun/121606.html">Redis壓力測試——redis-benchmark</a></h3> <p>閱讀 1648<span>·</span>2021-09-30 09:47</p></li> <li><h3 class="ellipsis"><a href="http://www.ezyhdfw.cn/yun/121315.html">Gcore:邁阿密E5-2623v4 CPU獨立服務(wù)器75折,支持支付寶</a></h3> <p>閱讀 982<span>·</span>2021-09-27 14:02</p></li> <li><h3 class="ellipsis"><a href="http://www.ezyhdfw.cn/yun/116380.html">移動端點擊事件全攻略,這里的坑你知多少?</a></h3> <p>閱讀 3044<span>·</span>2019-08-30 15:45</p></li> <li><h3 class="ellipsis"><a href="http://www.ezyhdfw.cn/yun/115837.html">js 手工繪制一個圖表(自定義chart),</a></h3> <p>閱讀 3086<span>·</span>2019-08-30 14:11</p></li> <li><h3 class="ellipsis"><a href="http://www.ezyhdfw.cn/yun/112906.html">h5項目各種小問題解決方案</a></h3> <p>閱讀 3680<span>·</span>2019-08-29 14:05</p></li> <li><h3 class="ellipsis"><a href="http://www.ezyhdfw.cn/yun/112753.html">Web Storage 與cookies</a></h3> <p>閱讀 1880<span>·</span>2019-08-29 13:51</p></li> <li><h3 class="ellipsis"><a href="http://www.ezyhdfw.cn/yun/111725.html">14天入門JavaScript-day two</a></h3> <p>閱讀 2267<span>·</span>2019-08-29 11:33</p></li> </ul> </div> <!-- 文章詳情右側(cè)廣告--> <div id="dnkpnhlp" class="com_layuiright-box"> <h6 class="top-com-title"><span>最新活動</span></h6> <div id="dnkpnhlp" class="com_adbox"> <div id="dnkpnhlp" class="layui-carousel" id="right-item"> <div carousel-item> <div> <a href="http://www.ezyhdfw.cn/site/active/kuaijiesale.html?ytag=seo" rel="nofollow"> <img src="http://www.ezyhdfw.cn/yun/data/attach/240625/2rTjEHmi.png" alt="云服務(wù)器"> </a> </div> <div> <a href="http://www.ezyhdfw.cn/site/product/gpu.html" rel="nofollow"> <img src="http://www.ezyhdfw.cn/yun/data/attach/240807/7NjZjdrd.png" alt="GPU云服務(wù)器"> </a> </div> </div> </div> </div> <!-- banner結(jié)束 --> <div id="dnkpnhlp" class="adhtml"> </div> <script> $(function(){ $.ajax({ type: "GET", url:"http://www.ezyhdfw.cn/yun/ad/getad/1.html", cache: false, success: function(text){ $(".adhtml").html(text); } }); }) </script> </div> </div> </div> </div> </div> </section> <!-- wap拉出按鈕 --> <div id="dnkpnhlp" class="site-tree-mobile layui-hide"> <i class="layui-icon layui-icon-spread-left"></i> </div> <!-- wap遮罩層 --> <div id="dnkpnhlp" class="site-mobile-shade"></div> <!--付費閱讀 --> <div class="dnkpnhlp" id="payread"> <div id="dnkpnhlp" class="layui-form-item">閱讀需要支付1元查看</div> <div id="dnkpnhlp" class="layui-form-item"><button class="btn-right">支付并查看</button></div> </div> <script> var prei=0; $(".site-seo-depict pre").each(function(){ var html=$(this).html().replace("<code>","").replace("</code>","").replace('<code class="javascript hljs" codemark="1">',''); $(this).attr('data-clipboard-text',html).attr("id","pre"+prei); $(this).html("").append("<code>"+html+"</code>"); prei++; }) $(".site-seo-depict img").each(function(){ if($(this).attr("src").indexOf('data:image/svg+xml')!= -1){ $(this).remove(); } }) $("LINK[href*='style-49037e4d27.css']").remove(); $("LINK[href*='markdown_views-d7a94ec6ab.css']").remove(); layui.use(['jquery', 'layer','code'], function(){ $("pre").attr("class","layui-code"); $("pre").attr("lay-title",""); $("pre").attr("lay-skin",""); layui.code(); $(".layui-code-h3 a").attr("class","copycode").html("復(fù)制代碼 ").attr("onclick","copycode(this)"); }); function copycode(target){ var id=$(target).parent().parent().attr("id"); var clipboard = new ClipboardJS("#"+id); clipboard.on('success', function(e) { e.clearSelection(); alert("復(fù)制成功") }); clipboard.on('error', function(e) { alert("復(fù)制失敗") }); } //$(".site-seo-depict").html($(".site-seo-depict").html().slice(0, -5)); </script> <link rel="stylesheet" type="text/css" href="http://www.ezyhdfw.cn/yun/static/js/neweditor/code/styles/tomorrow-night-eighties.css"> <script src="http://www.ezyhdfw.cn/yun/static/js/neweditor/code/highlight.pack.js" type="text/javascript"></script> <script src="http://www.ezyhdfw.cn/yun/static/js/clipboard.js"></script> <script>hljs.initHighlightingOnLoad();</script> <script> function setcode(){ var _html=''; document.querySelectorAll('pre code').forEach((block) => { var _tmptext=$.trim($(block).text()); if(_tmptext!=''){ _html=_html+_tmptext; console.log(_html); } }); } </script> <script> function payread(){ layer.open({ type: 1, title:"付費閱讀", shadeClose: true, content: $('#payread') }); } // 舉報 function jupao_tip(){ layer.open({ type: 1, title:false, shadeClose: true, content: $('#jubao') }); } $(".getcommentlist").click(function(){ var _id=$(this).attr("dataid"); var _tid=$(this).attr("datatid"); $("#articlecommentlist"+_id).toggleClass("hide"); var flag=$("#articlecommentlist"+_id).attr("dataflag"); if(flag==1){ flag=0; }else{ flag=1; //加載評論 loadarticlecommentlist(_id,_tid); } $("#articlecommentlist"+_id).attr("dataflag",flag); }) $(".add-comment-btn").click(function(){ var _id=$(this).attr("dataid"); $(".formcomment"+_id).toggleClass("hide"); }) $(".btn-sendartcomment").click(function(){ var _aid=$(this).attr("dataid"); var _tid=$(this).attr("datatid"); var _content=$.trim($(".commenttext"+_aid).val()); if(_content==''){ alert("評論內(nèi)容不能為空"); return false; } var touid=$("#btnsendcomment"+_aid).attr("touid"); if(touid==null){ touid=0; } addarticlecomment(_tid,_aid,_content,touid); }) $(".button_agree").click(function(){ var supportobj = $(this); var tid = $(this).attr("id"); $.ajax({ type: "GET", url:"http://www.ezyhdfw.cn/yun/index.php?topic/ajaxhassupport/" + tid, cache: false, success: function(hassupport){ if (hassupport != '1'){ $.ajax({ type: "GET", cache:false, url: "http://www.ezyhdfw.cn/yun/index.php?topic/ajaxaddsupport/" + tid, success: function(comments) { supportobj.find("span").html(comments+"人贊"); } }); }else{ alert("您已經(jīng)贊過"); } } }); }); function attenquestion(_tid,_rs){ $.ajax({ //提交數(shù)據(jù)的類型 POST GET type:"POST", //提交的網(wǎng)址 url:"http://www.ezyhdfw.cn/yun/favorite/topicadd.html", //提交的數(shù)據(jù) data:{tid:_tid,rs:_rs}, //返回數(shù)據(jù)的格式 datatype: "json",//"xml", "html", "script", "json", "jsonp", "text". //在請求之前調(diào)用的函數(shù) beforeSend:function(){}, //成功返回之后調(diào)用的函數(shù) success:function(data){ var data=eval("("+data+")"); console.log(data) if(data.code==2000){ layer.msg(data.msg,function(){ if(data.rs==1){ //取消收藏 $(".layui-layer-tips").attr("data-tips","收藏文章"); $(".layui-layer-tips").html('<i class="fa fa-heart-o"></i>'); } if(data.rs==0){ //收藏成功 $(".layui-layer-tips").attr("data-tips","已收藏文章"); $(".layui-layer-tips").html('<i class="fa fa-heart"></i>') } }) }else{ layer.msg(data.msg) } } , //調(diào)用執(zhí)行后調(diào)用的函數(shù) complete: function(XMLHttpRequest, textStatus){ postadopt=true; }, //調(diào)用出錯執(zhí)行的函數(shù) error: function(){ //請求出錯處理 postadopt=false; } }); } </script> <footer> <div id="dnkpnhlp" class="layui-container"> <div id="dnkpnhlp" class="flex_box_zd"> <div id="dnkpnhlp" class="left-footer"> <h6><a href="http://www.ezyhdfw.cn/"><img src="http://www.ezyhdfw.cn/yun/static/theme/ukd//images/logo.png" alt="UCloud (優(yōu)刻得科技股份有限公司)"></a></h6> <p>UCloud (優(yōu)刻得科技股份有限公司)是中立、安全的云計算服務(wù)平臺,堅持中立,不涉足客戶業(yè)務(wù)領(lǐng)域。公司自主研發(fā)IaaS、PaaS、大數(shù)據(jù)流通平臺、AI服務(wù)平臺等一系列云計算產(chǎn)品,并深入了解互聯(lián)網(wǎng)、傳統(tǒng)企業(yè)在不同場景下的業(yè)務(wù)需求,提供公有云、混合云、私有云、專有云在內(nèi)的綜合性行業(yè)解決方案。</p> </div> <div id="dnkpnhlp" class="right-footer layui-hidemd"> <ul class="flex_box_zd"> <li> <h6>UCloud與云服務(wù)</h6> <p><a href="http://www.ezyhdfw.cn/site/about/intro/">公司介紹</a></p> <p><a >加入我們</a></p> <p><a href="http://www.ezyhdfw.cn/site/ucan/onlineclass/">UCan線上公開課</a></p> <p><a href="http://www.ezyhdfw.cn/site/solutions.html" >行業(yè)解決方案</a></p> <p><a href="http://www.ezyhdfw.cn/site/pro-notice/">產(chǎn)品動態(tài)</a></p> </li> <li> <h6>友情鏈接</h6> <p><a >GPU算力平臺</a></p> <p><a >UCloud私有云</a></p> <p><a >SurferCloud</a></p> <p><a >工廠仿真軟件</a></p> <p><a >AI繪畫</a></p> <p><a >Wavespeed AI</a></p> </li> <li> <h6>社區(qū)欄目</h6> <p><a href="http://www.ezyhdfw.cn/yun/column/index.html">專欄文章</a></p> <p><a href="http://www.ezyhdfw.cn/yun/udata/">專題地圖</a></p> </li> <li> <h6>常見問題</h6> <p><a href="http://www.ezyhdfw.cn/site/ucsafe/notice.html" >安全中心</a></p> <p><a href="http://www.ezyhdfw.cn/site/about/news/recent/" >新聞動態(tài)</a></p> <p><a href="http://www.ezyhdfw.cn/site/about/news/report/">媒體動態(tài)</a></p> <p><a href="http://www.ezyhdfw.cn/site/cases.html">客戶案例</a></p> <p><a href="http://www.ezyhdfw.cn/site/notice/">公告</a></p> </li> <li> <span><img src="https://static.ucloud.cn/7a4b6983f4b94bcb97380adc5d073865.png" alt="優(yōu)刻得"></span> <p>掃掃了解更多</p></div> </div> <div id="dnkpnhlp" class="copyright">Copyright ? 2012-2025 UCloud 優(yōu)刻得科技股份有限公司<i>|</i><a rel="nofollow" >滬公網(wǎng)安備 31011002000058號</a><i>|</i><a rel="nofollow" ></a> 滬ICP備12020087號-3</a><i>|</i> <script type="text/javascript" src="https://gyfk12.kuaishang.cn/bs/ks.j?cI=197688&fI=125915" charset="utf-8"></script> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://#/hm.js?290c2650b305fc9fff0dbdcafe48b59d"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-DZSMXQ3P9N"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-DZSMXQ3P9N'); </script> <script> (function(){ var el = document.createElement("script"); el.src = "https://lf1-cdn-tos.bytegoofy.com/goofy/ttzz/push.js?99f50ea166557aed914eb4a66a7a70a4709cbb98a54ecb576877d99556fb4bfc3d72cd14f8a76432df3935ab77ec54f830517b3cb210f7fd334f50ccb772134a"; el.id = "ttzz"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(el, s); })(window) </script></div> </div> </footer> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.ezyhdfw.cn/" title="亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站 ">亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站 </a> <div class="friend-links"> </div> </div> </footer> <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body><div id="9im12" class="pl_css_ganrao" style="display: none;"><dfn id="9im12"></dfn><input id="9im12"></input><em id="9im12"></em><sup id="9im12"><ol id="9im12"><form id="9im12"><xmp id="9im12"></xmp></form></ol></sup><thead id="9im12"></thead><bdo id="9im12"></bdo><listing id="9im12"><sup id="9im12"><ol id="9im12"></ol></sup></listing><thead id="9im12"></thead><font id="9im12"></font><object id="9im12"></object><ol id="9im12"><li id="9im12"><progress id="9im12"></progress></li></ol><video id="9im12"></video><pre id="9im12"></pre><wbr id="9im12"><small id="9im12"><mark id="9im12"></mark></small></wbr><i id="9im12"></i><form id="9im12"><small id="9im12"><output id="9im12"><pre id="9im12"></pre></output></small></form><samp id="9im12"><legend id="9im12"><track id="9im12"><dfn id="9im12"></dfn></track></legend></samp><progress id="9im12"><delect id="9im12"><menuitem id="9im12"><thead id="9im12"></thead></menuitem></delect></progress><nobr id="9im12"><listing id="9im12"><strong id="9im12"></strong></listing></nobr><b id="9im12"><dfn id="9im12"><u id="9im12"></u></dfn></b><rt id="9im12"></rt><optgroup id="9im12"><tbody id="9im12"><ul id="9im12"></ul></tbody></optgroup><dd id="9im12"><acronym id="9im12"><p id="9im12"><label id="9im12"></label></p></acronym></dd><ol id="9im12"><tbody id="9im12"><tr id="9im12"></tr></tbody></ol><strong id="9im12"><legend id="9im12"></legend></strong><center id="9im12"></center><dl id="9im12"></dl><dd id="9im12"><div id="9im12"><pre id="9im12"><strike id="9im12"></strike></pre></div></dd><button id="9im12"></button><video id="9im12"><listing id="9im12"><style id="9im12"></style></listing></video><b id="9im12"></b><strong id="9im12"></strong><dfn id="9im12"></dfn><dfn id="9im12"></dfn><s id="9im12"></s><strike id="9im12"><ol id="9im12"></ol></strike><optgroup id="9im12"><label id="9im12"><input id="9im12"></input></label></optgroup><thead id="9im12"></thead><div id="9im12"></div><tt id="9im12"></tt><rp id="9im12"></rp><strong id="9im12"><legend id="9im12"><strike id="9im12"></strike></legend></strong><em id="9im12"></em><progress id="9im12"></progress><small id="9im12"></small><dd id="9im12"></dd><em id="9im12"></em><address id="9im12"><center id="9im12"><center id="9im12"></center></center></address><font id="9im12"><ruby id="9im12"><option id="9im12"><small id="9im12"></small></option></ruby></font><ol id="9im12"></ol></div> <script src="http://www.ezyhdfw.cn/yun/static/theme/ukd/js/common.js"></script> <<script type="text/javascript"> $(".site-seo-depict *,.site-content-answer-body *,.site-body-depict *").css("max-width","100%"); </script> </html>