成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Java 正則表達(dá)式詳解

Achilles / 1631人閱讀

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

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

正則表達(dá)式
: 定義一個(gè)搜索模式的字符串。

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

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

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

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

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

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

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

小括號(hào) () 可以達(dá)到對(duì)正則表達(dá)式進(jìn)行分組的效果。

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

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

示例:

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.
    }
}

上面的例子中,我們使用了 [.] 來(lái)匹配普通字符 . 而不需要使用 [.]。因?yàn)檎齽t對(duì)于 [] 中的 .,會(huì)自動(dòng)處理為 [.],即普通字符 . 進(jìn)行匹配。

2.4.1 僅分組但無(wú)反向引用

當(dāng)我們?cè)谛±ㄌ?hào) () 內(nèi)的模式開(kāi)頭加入 ?:,那么表示這個(gè)模式僅分組,但不創(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));
        }
    }
}

運(yùn)行結(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));
        }
    }
}

運(yùn)行結(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 中可以在小括號(hào)中使用 ? 將小括號(hào)中匹配的內(nèi)容保存為一個(gè)名字為 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)"); // 保存一個(gè)副本
        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"));
        }
    }
}

運(yùn)行結(jié)果:

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

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

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

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

可以在正則的開(kāi)頭指定模式修飾符。

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

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

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

2.7 Java 中的反斜杠

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

這里例舉兩個(gè)特別重要的用法:

在匹配 .{[(?$^* 這些特殊字符時(shí),需要在前面加上 ,比如匹配 . 時(shí),Java 中要寫(xiě)為 .,但對(duì)于正則表達(dá)式來(lái)說(shuō)就是 .

在匹配 時(shí),Java 中要寫(xiě)為 ,但對(duì)于正則表達(dá)式來(lái)說(shuō)就是

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

2.8 易錯(cuò)點(diǎn)示例

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

(jpg|png) 代表匹配 jpgpng

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

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

方法 描述
s.matches("regex") 當(dāng)僅且當(dāng)正則匹配整個(gè)字符串時(shí)返回 true
s.split("regex") 按匹配的正則表達(dá)式切片字符串
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", "-"));
    }
}

運(yùn)行結(jié)果:

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

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

第一步,通過(guò)正則表達(dá)式創(chuàng)建模式對(duì)象 Pattern。

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

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

來(lái)個(gè)例子,加深理解:

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 中忽略大小寫(xiě),有兩種寫(xiě)法:
        // Pattern pattern = Pattern.compile("w+", Pattern.CASE_INSENSITIVE);
        // Pattern pattern = Pattern.compile("(?i)w+"); // 推薦寫(xiě)法
        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)建第兩個(gè)模式,將空格替換為 tab
        Pattern replace = Pattern.compile("s+");
        Matcher matcher2 = replace.matcher(text);
        System.out.println(matcher2.replaceAll("	"));
    }
}

運(yùn)行結(jié)果:

Start index: 0 End index: 5 Hello
Start index: 6 End index: 11 Regex
Hello    Regex!
5. 若干個(gè)常用例子 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());
        }
    }
}

運(yùn)行結(jié)果:

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

比如,匹配 1990 到 2017。

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

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

正確的匹配方式:

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) 的多行匹配模式,只為方便我們測(cè)試輸出
        // "^1990$|^199[1-9]$|^20[0-1][0-6]$|^2017$" 為判斷 1990-2017 正確的正則表達(dá)式
        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());
        }
    }
}

運(yùn)行結(jié)果:

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

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

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)簽寫(xiě)法,比如:空格、引號(hào)
        Pattern pattern = Pattern.compile("");
        Matcher matcher = pattern.matcher(str);
        while (matcher.find()) {
            System.out.println(matcher.group("src"));
        }
    }
}

運(yùn)行結(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ā)布時(shí)間
"; // 貪婪模式 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>運(yùn)行結(jié)果:</p> <pre>文章標(biāo)題</div><div>發(fā)布時(shí)間 -------------- 文章標(biāo)題 發(fā)布時(shí)間</pre> <b>6. 推薦兩個(gè)在線正則工具</b> <p>JavaScript、Python 等的在線表達(dá)式工具:https://regex101.com/ </p> <p>Java 在線表達(dá)式工具:http://www.regexplanet.com/advanced/java/index.html </p> <b>7. 參考</b> <p>Java Regex - Tutorial</p> </div> <div id="6a22guqa" class="mt-64 tags-seach" > <div id="6a22guqa" class="tags-info"> <a style="width:120px;" title="GPU云服務(wù)器" href="http://m.hztianpu.com/site/product/gpu.html">GPU云服務(wù)器</a> <a style="width:120px;" title="云服務(wù)器" href="http://m.hztianpu.com/site/active/kuaijiesale.html?ytag=seo">云服務(wù)器</a> <a style="width:120px;" title="正則表達(dá)式j(luò)ava" href="http://m.hztianpu.com/yun/tag/zhengzebiaodashijava/">正則表達(dá)式j(luò)ava</a> <a style="width:120px;" title="java正則表達(dá)式教程" href="http://m.hztianpu.com/yun/tag/javazhengzebiaodashijiaocheng/">java正則表達(dá)式教程</a> <a style="width:120px;" title="java js正則表達(dá)式" href="http://m.hztianpu.com/yun/tag/java jszhengzebiaodashi/">java js正則表達(dá)式</a> <a style="width:120px;" title="java正則表達(dá)式t" href="http://m.hztianpu.com/yun/tag/javazhengzebiaodashit/">java正則表達(dá)式t</a> </div> </div> <div id="6a22guqa" class="entry-copyright mb-30"> <p class="mb-15"> 文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。</p> <p>轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/69899.html</p> </div> <ul class="pre-next-page"> <li id="6a22guqa" class="ellipsis"><a class="hpf" href="http://m.hztianpu.com/yun/69898.html">上一篇:(八)java多線程之Semaphore</a></li> <li id="6a22guqa" class="ellipsis"><a class="hpf" href="http://m.hztianpu.com/yun/69900.html">下一篇:java根據(jù)模板動(dòng)態(tài)生成PDF</a></li> </ul> </div> <div id="6a22guqa" 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="6a22guqa" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://m.hztianpu.com/yun/87811.html"><b><em>Java</em>script字符串常用方法<em>詳解</em></b></a></h2> <p class="ellipsis2 good">摘要:屬性里的字符串類似于數(shù)組,都是一個(gè)一個(gè)字符拼湊在一起組成的,因此可以用屬性取得字符串的長(zhǎng)度字符串常用的一些方法返回字符串的第個(gè)字符,如果不在之間,則返回一個(gè)空字符串。如果匹配成功,則返回正則表達(dá)式在字符串中首次匹配項(xiàng)的索引否則,返回。 字符串 字符串就是一個(gè)或多個(gè)排列在一起的字符,放在單引號(hào)或雙引號(hào)之中。 abc abc length屬性js里的字符串類似于數(shù)組,都是一個(gè)一個(gè)字...</p> <div id="6a22guqa" class="com_white-left-info"> <div id="6a22guqa" class="com_white-left-infol"> <a href="http://m.hztianpu.com/yun/u-952.html"><img src="http://m.hztianpu.com/yun/data/avatar/000/00/09/small_000000952.jpg" alt=""><span id="6a22guqa" class="layui-hide64">Wildcard</span></a> <time datetime="">2019-08-21 14:08</time> <span><i class="fa fa-commenting"></i>評(píng)論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div id="6a22guqa" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://m.hztianpu.com/yun/68337.html"><b>后端ing</b></a></h2> <p class="ellipsis2 good">摘要:當(dāng)活動(dòng)線程核心線程非核心線程達(dá)到這個(gè)數(shù)值后,后續(xù)任務(wù)將會(huì)根據(jù)來(lái)進(jìn)行拒絕策略處理。線程池工作原則當(dāng)線程池中線程數(shù)量小于則創(chuàng)建線程,并處理請(qǐng)求。當(dāng)線程池中的數(shù)量等于最大線程數(shù)時(shí)默默丟棄不能執(zhí)行的新加任務(wù),不報(bào)任何異常。 spring-cache使用記錄 spring-cache的使用記錄,坑點(diǎn)記錄以及采用的解決方案 深入分析 java 線程池的實(shí)現(xiàn)原理 在這篇文章中,作者有條不紊的將 ja...</p> <div id="6a22guqa" class="com_white-left-info"> <div id="6a22guqa" class="com_white-left-infol"> <a href="http://m.hztianpu.com/yun/u-1389.html"><img src="http://m.hztianpu.com/yun/data/avatar/000/00/13/small_000001389.jpg" alt=""><span id="6a22guqa" class="layui-hide64">roadtogeek</span></a> <time datetime="">2019-08-15 13:49</time> <span><i class="fa fa-commenting"></i>評(píng)論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div id="6a22guqa" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://m.hztianpu.com/yun/70539.html"><b><em>java</em><em>正則</em>表式的使用</b></a></h2> <p class="ellipsis2 good">摘要:直接使用正則表達(dá)式對(duì)輸入的字符串進(jìn)行匹配,匹配成功則返回使用正則表示式,進(jìn)行字符串分割進(jìn)行匹配操作,如果匹配成功,這三個(gè)方法都會(huì)返回其中,是在源字符串中找出和正則表達(dá)式匹配的字符串。 概念 正則表達(dá)式 在閱讀本文前,你應(yīng)該已經(jīng)了解了正則表達(dá)式的基本概念以及如何書(shū)寫(xiě)正則表達(dá)式。如果對(duì)正則表達(dá)式不是太了解,或者想更深入地了解正則表示式,請(qǐng)點(diǎn)擊這里。 捕獲組 捕獲組能夠讓我們方便地從正則表達(dá)...</p> <div id="6a22guqa" class="com_white-left-info"> <div id="6a22guqa" class="com_white-left-infol"> <a href="http://m.hztianpu.com/yun/u-149.html"><img src="http://m.hztianpu.com/yun/data/avatar/000/00/01/small_000000149.jpg" alt=""><span id="6a22guqa" class="layui-hide64">zoomdong</span></a> <time datetime="">2019-08-16 10:49</time> <span><i class="fa fa-commenting"></i>評(píng)論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div id="6a22guqa" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://m.hztianpu.com/yun/88131.html"><b><em>正則</em><em>表<em>達(dá)式</em></em>前端使用手冊(cè)</b></a></h2> <p class="ellipsis2 good">摘要:非貪婪模式盡可能少的匹配所搜索的字符串,而默認(rèn)的貪婪模式則盡可能多的匹配所搜索的字符串。 導(dǎo)讀 你有沒(méi)有在搜索文本的時(shí)候絞盡腦汁, 試了一個(gè)又一個(gè)表達(dá)式, 還是不行. 你有沒(méi)有在表單驗(yàn)證的時(shí)候, 只是做做樣子(只要不為空就好), 然后燒香拜佛, 虔誠(chéng)祈禱, 千萬(wàn)不要出錯(cuò). 你有沒(méi)有在使用sed 和 grep 命令的時(shí)候, 感覺(jué)莫名其妙, 明明應(yīng)該支持的元字符, 卻就是匹配不到. 甚至,...</p> <div id="6a22guqa" class="com_white-left-info"> <div id="6a22guqa" class="com_white-left-infol"> <a href="http://m.hztianpu.com/yun/u-1241.html"><img src="http://m.hztianpu.com/yun/data/avatar/000/00/12/small_000001241.jpg" alt=""><span id="6a22guqa" class="layui-hide64">zhoutao</span></a> <time datetime="">2019-08-21 15:12</time> <span><i class="fa fa-commenting"></i>評(píng)論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div id="6a22guqa" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://m.hztianpu.com/yun/119616.html"><b>軟件接口測(cè)試工具Jmeter使用核心<em>詳解</em>【建議收藏】</b></a></h2> <p class="ellipsis2 good">用Jmeter做接口測(cè)試只需要掌握幾個(gè)核心功能就可以了。 并不一定要把它所有的功能都掌握,先掌握核心功能入行,然后再根據(jù)工作需要和職業(yè)規(guī)劃來(lái)學(xué)習(xí)更多的內(nèi)容。這篇文章在前面接口測(cè)試框架(測(cè)試計(jì)劃--->線程組--->請(qǐng)求--->查看結(jié)果樹(shù))的前提下,來(lái)介紹必須要掌握的幾個(gè)核心功能,力求用最短的時(shí)間取得最大的成果。 在前面的文章中我提到,用Jmeter做接口測(cè)試的核心是單接口測(cè)試的參數(shù)化和關(guān)聯(lián)接口測(cè)試...</p> <div id="6a22guqa" class="com_white-left-info"> <div id="6a22guqa" class="com_white-left-infol"> <a href="http://m.hztianpu.com/yun/u-149.html"><img src="http://m.hztianpu.com/yun/data/avatar/000/00/01/small_000000149.jpg" alt=""><span id="6a22guqa" class="layui-hide64">zoomdong</span></a> <time datetime="">2021-09-09 09:32</time> <span><i class="fa fa-commenting"></i>評(píng)論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> </ul> </div> <div id="6a22guqa" class="topicone-box-wangeditor"> <h3 class="top-com-title mb-64"><span>發(fā)表評(píng)論</span></h3> <div id="6a22guqa" class="xcp-publish-main flex_box_zd"> <div id="6a22guqa" class="unlogin-pinglun-box"> <a href="javascript:login()" class="grad">登陸后可評(píng)論</a> </div> </div> </div> <div id="6a22guqa" class="site-box-content"> <div id="6a22guqa" class="site-content-title"> <h3 class="top-com-title mb-64"><span>0條評(píng)論</span></h3> </div> <div id="6a22guqa" class="pages"></ul></div> </div> </div> <div id="6a22guqa" class="layui-col-md4 layui-col-lg3 com_white-right site-wrap-right"> <div id="6a22guqa" class=""> <div id="6a22guqa" class="com_layuiright-box user-msgbox"> <a href="http://m.hztianpu.com/yun/u-1617.html"><img src="http://m.hztianpu.com/yun/data/avatar/000/00/16/small_000001617.jpg" alt=""></a> <h3><a href="http://m.hztianpu.com/yun/u-1617.html" rel="nofollow">Achilles</a></h3> <h6>男<span>|</span>高級(jí)講師</h6> <div id="6a22guqa" 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="6a22guqa" class="user-msgbox-list flex_box_zd"> <h3 class="hpf">TA的文章</h3> <a href="http://m.hztianpu.com/yun/ut-1617.html" class="box_hxjz">閱讀更多</a> </div> <ul class="user-msgbox-ul"> <li><h3 class="ellipsis"><a href="http://m.hztianpu.com/yun/124560.html">ITLDC:黑五促銷活動(dòng),新加坡/美國(guó)/荷蘭/波蘭/烏克蘭vps等11個(gè)機(jī)房首年五折僅€16.5,不</a></h3> <p>閱讀 1262<span>·</span>2021-11-23 10:10</p></li> <li><h3 class="ellipsis"><a href="http://m.hztianpu.com/yun/121606.html">Redis壓力測(cè)試——redis-benchmark</a></h3> <p>閱讀 1695<span>·</span>2021-09-30 09:47</p></li> <li><h3 class="ellipsis"><a href="http://m.hztianpu.com/yun/121315.html">Gcore:邁阿密E5-2623v4 CPU獨(dú)立服務(wù)器75折,支持支付寶</a></h3> <p>閱讀 1040<span>·</span>2021-09-27 14:02</p></li> <li><h3 class="ellipsis"><a href="http://m.hztianpu.com/yun/116380.html">移動(dòng)端點(diǎn)擊事件全攻略,這里的坑你知多少?</a></h3> <p>閱讀 3061<span>·</span>2019-08-30 15:45</p></li> <li><h3 class="ellipsis"><a href="http://m.hztianpu.com/yun/115837.html">js 手工繪制一個(gè)圖表(自定義chart),</a></h3> <p>閱讀 3101<span>·</span>2019-08-30 14:11</p></li> <li><h3 class="ellipsis"><a href="http://m.hztianpu.com/yun/112906.html">h5項(xiàng)目各種小問(wèn)題解決方案</a></h3> <p>閱讀 3700<span>·</span>2019-08-29 14:05</p></li> <li><h3 class="ellipsis"><a href="http://m.hztianpu.com/yun/112753.html">Web Storage 與cookies</a></h3> <p>閱讀 1896<span>·</span>2019-08-29 13:51</p></li> <li><h3 class="ellipsis"><a href="http://m.hztianpu.com/yun/111725.html">14天入門(mén)JavaScript-day two</a></h3> <p>閱讀 2285<span>·</span>2019-08-29 11:33</p></li> </ul> </div> <!-- 文章詳情右側(cè)廣告--> <div id="6a22guqa" class="com_layuiright-box"> <h6 class="top-com-title"><span>最新活動(dòng)</span></h6> <div id="6a22guqa" class="com_adbox"> <div id="6a22guqa" class="layui-carousel" id="right-item"> <div carousel-item> <div> <a href="http://m.hztianpu.com/site/active/kuaijiesale.html?ytag=seo" rel="nofollow"> <img src="http://m.hztianpu.com/yun/data/attach/240625/2rTjEHmi.png" alt="云服務(wù)器"> </a> </div> <div> <a href="http://m.hztianpu.com/site/product/gpu.html" rel="nofollow"> <img src="http://m.hztianpu.com/yun/data/attach/240807/7NjZjdrd.png" alt="GPU云服務(wù)器"> </a> </div> </div> </div> </div> <!-- banner結(jié)束 --> <div id="6a22guqa" class="adhtml"> </div> </div> </div> </div> </div> </div> </section> <!-- wap拉出按鈕 --> <div id="6a22guqa" class="site-tree-mobile layui-hide"> <i class="layui-icon layui-icon-spread-left"></i> </div> <!-- wap遮罩層 --> <div id="6a22guqa" class="site-mobile-shade"></div> <!--付費(fèi)閱讀 --> <div class="6a22guqa" id="payread"> <div id="6a22guqa" class="layui-form-item">閱讀需要支付1元查看</div> <div id="6a22guqa" class="layui-form-item"><button class="btn-right">支付并查看</button></div> </div> <link rel="stylesheet" type="text/css" href="http://m.hztianpu.com/yun/static/js/neweditor/code/styles/tomorrow-night-eighties.css"> <footer> <div id="6a22guqa" class="layui-container"> <div id="6a22guqa" class="flex_box_zd"> <div id="6a22guqa" class="left-footer"> <h6><a href="http://m.hztianpu.com/"><img src="http://m.hztianpu.com/yun/static/theme/ukd//images/logo.png" alt="UCloud (優(yōu)刻得科技股份有限公司)"></a></h6> <p>UCloud (優(yōu)刻得科技股份有限公司)是中立、安全的云計(jì)算服務(wù)平臺(tái),堅(jiān)持中立,不涉足客戶業(yè)務(wù)領(lǐng)域。公司自主研發(fā)IaaS、PaaS、大數(shù)據(jù)流通平臺(tái)、AI服務(wù)平臺(tái)等一系列云計(jì)算產(chǎn)品,并深入了解互聯(lián)網(wǎng)、傳統(tǒng)企業(yè)在不同場(chǎng)景下的業(yè)務(wù)需求,提供公有云、混合云、私有云、專有云在內(nèi)的綜合性行業(yè)解決方案。</p> </div> <div id="6a22guqa" class="right-footer layui-hidemd"> <ul class="flex_box_zd"> <li> <h6>UCloud與云服務(wù)</h6> <p><a href="http://m.hztianpu.com/site/about/intro/">公司介紹</a></p> <p><a >加入我們</a></p> <p><a href="http://m.hztianpu.com/site/ucan/onlineclass/">UCan線上公開(kāi)課</a></p> <p><a href="http://m.hztianpu.com/site/solutions.html" >行業(yè)解決方案</a></p> <p><a href="http://m.hztianpu.com/site/pro-notice/">產(chǎn)品動(dòng)態(tài)</a></p> </li> <li> <h6>友情鏈接</h6> <p><a >GPU算力平臺(tái)</a></p> <p><a >UCloud私有云</a></p> <p><a >SurferCloud</a></p> <p><a >工廠仿真軟件</a></p> <p><a >AI繪畫(huà)</a></p> <p><a >Wavespeed AI</a></p> </li> <li> <h6>社區(qū)欄目</h6> <p><a href="http://m.hztianpu.com/yun/column/index.html">專欄文章</a></p> <p><a href="http://m.hztianpu.com/yun/udata/">專題地圖</a></p> </li> <li> <h6>常見(jiàn)問(wèn)題</h6> <p><a href="http://m.hztianpu.com/site/ucsafe/notice.html" >安全中心</a></p> <p><a href="http://m.hztianpu.com/site/about/news/recent/" >新聞動(dòng)態(tài)</a></p> <p><a href="http://m.hztianpu.com/site/about/news/report/">媒體動(dòng)態(tài)</a></p> <p><a href="http://m.hztianpu.com/site/cases.html">客戶案例</a></p> <p><a href="http://m.hztianpu.com/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="6a22guqa" class="copyright">Copyright ? 2012-2025 UCloud 優(yōu)刻得科技股份有限公司<i>|</i><a rel="nofollow" >滬公網(wǎng)安備 31011002000058號(hào)</a><i>|</i><a rel="nofollow" ></a> 滬ICP備12020087號(hào)-3</a><i>|</i> <!-- Global site tag (gtag.js) - Google Analytics --> </div> </div> </footer> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <h1><a href="http://m.hztianpu.com/">成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码</a></h1> <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="lv3fj" class="pl_css_ganrao" style="display: none;"><legend id="lv3fj"><var id="lv3fj"><form id="lv3fj"><ins id="lv3fj"></ins></form></var></legend><font id="lv3fj"><legend id="lv3fj"><sup id="lv3fj"><form id="lv3fj"></form></sup></legend></font><pre id="lv3fj"><i id="lv3fj"><listing id="lv3fj"><small id="lv3fj"></small></listing></i></pre><rp id="lv3fj"><font id="lv3fj"></font></rp><u id="lv3fj"></u><form id="lv3fj"><rp id="lv3fj"><address id="lv3fj"><p id="lv3fj"></p></address></rp></form><mark id="lv3fj"><form id="lv3fj"><p id="lv3fj"><var id="lv3fj"></var></p></form></mark><dfn id="lv3fj"><form id="lv3fj"></form></dfn><font id="lv3fj"><legend id="lv3fj"><var id="lv3fj"><form id="lv3fj"></form></var></legend></font><var id="lv3fj"><u id="lv3fj"><ins id="lv3fj"><form id="lv3fj"></form></ins></u></var><rp id="lv3fj"><font id="lv3fj"><legend id="lv3fj"><sup id="lv3fj"></sup></legend></font></rp><menuitem id="lv3fj"><pre id="lv3fj"><style id="lv3fj"><nobr id="lv3fj"></nobr></style></pre></menuitem><label id="lv3fj"></label><sup id="lv3fj"></sup><label id="lv3fj"></label><p id="lv3fj"><var id="lv3fj"></var></p><style id="lv3fj"><nobr id="lv3fj"><em id="lv3fj"><menuitem id="lv3fj"></menuitem></em></nobr></style><optgroup id="lv3fj"><track id="lv3fj"><span id="lv3fj"><thead id="lv3fj"></thead></span></track></optgroup><dl id="lv3fj"><strong id="lv3fj"></strong></dl><address id="lv3fj"><legend id="lv3fj"></legend></address><optgroup id="lv3fj"><ruby id="lv3fj"><span id="lv3fj"><strike id="lv3fj"></strike></span></ruby></optgroup><ins id="lv3fj"><address id="lv3fj"><p id="lv3fj"><dfn id="lv3fj"></dfn></p></address></ins><video id="lv3fj"><em id="lv3fj"><meter id="lv3fj"><pre id="lv3fj"></pre></meter></em></video><dl id="lv3fj"><pre id="lv3fj"></pre></dl><pre id="lv3fj"><track id="lv3fj"><tt id="lv3fj"><progress id="lv3fj"></progress></tt></track></pre><sup id="lv3fj"></sup><address id="lv3fj"><legend id="lv3fj"></legend></address><ol id="lv3fj"></ol><sup id="lv3fj"></sup><span id="lv3fj"><style id="lv3fj"><nobr id="lv3fj"><em id="lv3fj"></em></nobr></style></span><label id="lv3fj"><video id="lv3fj"></video></label><th id="lv3fj"></th><label id="lv3fj"></label><form id="lv3fj"><p id="lv3fj"></p></form><form id="lv3fj"></form><tt id="lv3fj"></tt><progress id="lv3fj"><acronym id="lv3fj"></acronym></progress><track id="lv3fj"><b id="lv3fj"><progress id="lv3fj"><acronym id="lv3fj"></acronym></progress></b></track><pre id="lv3fj"><dfn id="lv3fj"></dfn></pre><tt id="lv3fj"></tt><sup id="lv3fj"><label id="lv3fj"></label></sup><b id="lv3fj"><mark id="lv3fj"></mark></b><address id="lv3fj"><p id="lv3fj"><dfn id="lv3fj"><u id="lv3fj"></u></dfn></p></address><sub id="lv3fj"><thead id="lv3fj"></thead></sub><p id="lv3fj"></p><strike id="lv3fj"></strike><strong id="lv3fj"><track id="lv3fj"><tt id="lv3fj"><progress id="lv3fj"></progress></tt></track></strong><style id="lv3fj"><nobr id="lv3fj"><small id="lv3fj"><menuitem id="lv3fj"></menuitem></small></nobr></style><label id="lv3fj"><video id="lv3fj"></video></label><sup id="lv3fj"><label id="lv3fj"></label></sup><ol id="lv3fj"></ol><acronym id="lv3fj"><p id="lv3fj"><var id="lv3fj"><form id="lv3fj"></form></var></p></acronym><address id="lv3fj"><legend id="lv3fj"><ol id="lv3fj"><label id="lv3fj"></label></ol></legend></address><p id="lv3fj"><var id="lv3fj"></var></p><small id="lv3fj"><menuitem id="lv3fj"></menuitem></small><i id="lv3fj"></i><mark id="lv3fj"></mark><listing id="lv3fj"><dfn id="lv3fj"></dfn></listing><output id="lv3fj"><sub id="lv3fj"><thead id="lv3fj"><label id="lv3fj"></label></thead></sub></output><pre id="lv3fj"><th id="lv3fj"><b id="lv3fj"><mark id="lv3fj"></mark></b></th></pre><progress id="lv3fj"><acronym id="lv3fj"><legend id="lv3fj"><dfn id="lv3fj"></dfn></legend></acronym></progress><meter id="lv3fj"></meter><strong id="lv3fj"><optgroup id="lv3fj"><ruby id="lv3fj"><sub id="lv3fj"></sub></ruby></optgroup></strong><div id="lv3fj"></div><progress id="lv3fj"></progress><sup id="lv3fj"><label id="lv3fj"></label></sup><p id="lv3fj"><var id="lv3fj"><form id="lv3fj"><rp id="lv3fj"></rp></form></var></p><strike id="lv3fj"><strong id="lv3fj"><optgroup id="lv3fj"><ruby id="lv3fj"></ruby></optgroup></strong></strike><progress id="lv3fj"><acronym id="lv3fj"><strong id="lv3fj"><track id="lv3fj"></track></strong></acronym></progress><font id="lv3fj"><div id="lv3fj"><sup id="lv3fj"><style id="lv3fj"></style></sup></div></font><optgroup id="lv3fj"><ruby id="lv3fj"></ruby></optgroup><div id="lv3fj"><ol id="lv3fj"><label id="lv3fj"><rp id="lv3fj"></rp></label></ol></div><i id="lv3fj"></i><ins id="lv3fj"><address id="lv3fj"></address></ins><ins id="lv3fj"></ins><strong id="lv3fj"></strong><rp id="lv3fj"><address id="lv3fj"></address></rp><b id="lv3fj"><mark id="lv3fj"></mark></b><style id="lv3fj"><video id="lv3fj"><small id="lv3fj"><menuitem id="lv3fj"></menuitem></small></video></style><b id="lv3fj"></b><ruby id="lv3fj"></ruby><progress id="lv3fj"></progress><big id="lv3fj"><dl id="lv3fj"><strong id="lv3fj"><track id="lv3fj"></track></strong></dl></big><ins id="lv3fj"><font id="lv3fj"><div id="lv3fj"><sup id="lv3fj"></sup></div></font></ins><legend id="lv3fj"><dfn id="lv3fj"><b id="lv3fj"><mark id="lv3fj"></mark></b></dfn></legend><legend id="lv3fj"></legend><em id="lv3fj"><meter id="lv3fj"></meter></em><font id="lv3fj"><meter id="lv3fj"><ol id="lv3fj"><label id="lv3fj"></label></ol></meter></font><p id="lv3fj"><var id="lv3fj"></var></p><div id="lv3fj"></div><strong id="lv3fj"><optgroup id="lv3fj"><ruby id="lv3fj"><sub id="lv3fj"></sub></ruby></optgroup></strong><var id="lv3fj"><u id="lv3fj"><ins id="lv3fj"><address id="lv3fj"></address></ins></u></var><dl id="lv3fj"><strong id="lv3fj"></strong></dl><address id="lv3fj"><legend id="lv3fj"><var id="lv3fj"><b id="lv3fj"></b></var></legend></address><thead id="lv3fj"><big id="lv3fj"><label id="lv3fj"><strong id="lv3fj"></strong></label></big></thead><address id="lv3fj"><p id="lv3fj"><dfn id="lv3fj"><u id="lv3fj"></u></dfn></p></address><tt id="lv3fj"><progress id="lv3fj"><acronym id="lv3fj"><legend id="lv3fj"></legend></acronym></progress></tt><dl id="lv3fj"><pre id="lv3fj"><th id="lv3fj"><b id="lv3fj"></b></th></pre></dl><thead id="lv3fj"><dl id="lv3fj"><pre id="lv3fj"><th id="lv3fj"></th></pre></dl></thead><pre id="lv3fj"><track id="lv3fj"><tt id="lv3fj"><progress id="lv3fj"></progress></tt></track></pre><form id="lv3fj"></form><label id="lv3fj"><strong id="lv3fj"></strong></label><strike id="lv3fj"></strike><form id="lv3fj"></form><u id="lv3fj"><ins id="lv3fj"><address id="lv3fj"><p id="lv3fj"></p></address></ins></u><strong id="lv3fj"><ruby id="lv3fj"></ruby></strong><em id="lv3fj"></em><ruby id="lv3fj"></ruby><small id="lv3fj"></small><ins id="lv3fj"></ins><nobr id="lv3fj"><small id="lv3fj"></small></nobr><strike id="lv3fj"></strike><sup id="lv3fj"><label id="lv3fj"></label></sup><legend id="lv3fj"><sup id="lv3fj"><label id="lv3fj"><video id="lv3fj"></video></label></sup></legend><mark id="lv3fj"><address id="lv3fj"><p id="lv3fj"><sup id="lv3fj"></sup></p></address></mark><ruby id="lv3fj"><thead id="lv3fj"></thead></ruby><div id="lv3fj"></div><ol id="lv3fj"><style id="lv3fj"></style></ol><thead id="lv3fj"><big id="lv3fj"><dl id="lv3fj"><strong id="lv3fj"></strong></dl></big></thead><b id="lv3fj"><mark id="lv3fj"></mark></b><listing id="lv3fj"><dfn id="lv3fj"></dfn></listing><dl id="lv3fj"><pre id="lv3fj"></pre></dl><sub id="lv3fj"><strike id="lv3fj"></strike></sub><div id="lv3fj"></div><div id="lv3fj"><pre id="lv3fj"><i id="lv3fj"><listing id="lv3fj"></listing></i></pre></div><p id="lv3fj"></p><meter id="lv3fj"><pre id="lv3fj"></pre></meter><small id="lv3fj"></small><font id="lv3fj"><legend id="lv3fj"></legend></font><ruby id="lv3fj"><thead id="lv3fj"></thead></ruby><listing id="lv3fj"><small id="lv3fj"></small></listing><style id="lv3fj"><nobr id="lv3fj"><small id="lv3fj"><menuitem id="lv3fj"></menuitem></small></nobr></style><small id="lv3fj"><output id="lv3fj"></output></small><dl id="lv3fj"></dl><video id="lv3fj"></video><font id="lv3fj"><div id="lv3fj"><ol id="lv3fj"><label id="lv3fj"></label></ol></div></font><strong id="lv3fj"></strong><legend id="lv3fj"></legend><label id="lv3fj"></label><i id="lv3fj"><listing id="lv3fj"></listing></i><dfn id="lv3fj"><menuitem id="lv3fj"></menuitem></dfn><ruby id="lv3fj"><thead id="lv3fj"><big id="lv3fj"><dl id="lv3fj"></dl></big></thead></ruby><acronym id="lv3fj"><pre id="lv3fj"><th id="lv3fj"><b id="lv3fj"></b></th></pre></acronym><address id="lv3fj"><legend id="lv3fj"></legend></address><thead id="lv3fj"></thead><thead id="lv3fj"><thead id="lv3fj"></thead></thead><b id="lv3fj"><mark id="lv3fj"><acronym id="lv3fj"><legend id="lv3fj"></legend></acronym></mark></b><b id="lv3fj"></b><p id="lv3fj"><dfn id="lv3fj"></dfn></p><meter id="lv3fj"><ol id="lv3fj"></ol></meter></div> < </html>