導航:首頁 > 編程語言 > java正則表達式符號

java正則表達式符號

發布時間:2022-09-02 23:48:12

java中什麼是正則表達式

正則表達式 就是將一個類型的數據 按照一定方式 寫成正則表達式的形式 這樣可以辨別數據是否符合這一類型的數據 比如我們的身份證號碼 就是有一定的規則的 這樣我們寫一個 正則表達式 和別人輸入的身份證號碼 比對 如果符合這個正則表達式的規則 就是身份證號碼

⑵ 正則表達式里的特殊符號怎麼表示 java

Pattern
p
=
Pattern.compile("[0-9\\+-/*()^
]+");
Matcher
m1
=
p.matcher("3
*
(
5
*
(
5
-
2
)
)
-
9");
Matcher
m2
=
p.matcher("2
*
3
*
4
-
8
+
9
/
3
/
3");
Matcher
m3
=
p.matcher("(
(
(
3
^
4
)
)
)");
System.out.println(m1.matches());
System.out.println(m2.matches());
System.out.println(m3.matches());
上面的代碼我已經測試過了,你試試吧~!
加號+在JAVA中有特殊的含義(字元串的連接),所以表示加號+必須要用\\+

⑶ java正則表達式怎麼書寫

正則表達式,又稱規則表達式。(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE),計算機科學的一個概念。正則表達式通常被用來檢索、替換那些符合某個模式(規則)的文本。

下面介紹具體的方法。

⑷ java正則表達式的寫法

方法/步驟
Java正則表達式正則表達式的語法知識:Java支持Perl 5 正則表達式語法的一個子集。一個重要的問題是Java沒有正則表達式常量,而是使用簡單的老的字元串常量代替的。這就意味著,你需要一個的額外等級的轉換。例如,正則表達式\s+不得不表示為「\\s+」這樣的字元串。轉義序列(Escapesequences):

\

引用後面的元字元(metacharacter) (例如 \. 匹配.) 。

\Q

引用後面所有的元字元直到遇到 \E 。

\E

停止引用元字元 (和 \Q 開始配合使用)。

\\

一個文字反斜杠\。

\uhhhh

Unicode字元 U+hhhh (16進制)。

\xhh

Unicode字元 U+00hh (16進制)。

\cx

ASCII的控制字元 ^x (比如 \cH 可以是 ^H, U+0008)。

\a

ASCII bell 字元 (U+0007)。

\e

ASCII ESC字元r (U+001b)。

\f
ASCII[size=17.280000686645508px]換頁字元 (U+000c)。
\n

ASCII 換行字元 (U+000a)。

\r

ASCII 回車字元 (U+000d)。

\t

ASCII tab 字元 (U+0009)。

字元類(Characterclasses)使用集合運算來構建字元類是完全可行的:

[abc]

任意 a, b, 或 c字元。(枚舉)

[a-c]

任意a-c范圍的字元,即任意 a, b,或 c。 (范圍)

[^abc]
除了a, b, 或 c以外的任意字元。 (否定)

[[a-f][0-9]]

任意字元,是a-f,或者0-9。 (聯合)

[[a-z]&&[jkl]]

同時滿足兩個范圍的任意字元。 (交叉)

大多數時候,構造的字元類更有用:

\d
任意數字字元。

\D
任意非數字字元。

\s
任意空白字元

\S
任意非空白字元

\w

Any word character.

\W

Any non-word character.

\p{NAME}

Any character in the class with the given NAME.

\P{NAME}

Any character not in the named class.

各種命名的類:
· Unicodecategory names, prefixed by Is. For example \p{IsLu} forall uppercase letters.
· POSIX class names. These are'Alnum', 'Alpha', 'ASCII', 'Blank', 'Cntrl', 'Digit', 'Graph', 'Lower','Print', 'Punct', 'Upper', 'XDigit'.
· Unicode block names, as usedby forName(String) prefixedby In. For example \p{InHebrew} for all characters in the Hebrewblock.
· Character method names. These areall non-deprecated methods from Character whosename starts with is, but with the is replaced by java. Forexample,\p{javaLowerCase}.

定量修飾符(Quantifiers)
定量修飾符匹配一些數量的之前提到的語法表達式。

*

0個或更多

?

0個或1個

+

1個或更多

{n}

確切的n個

{n,}

至少n個

{n,m}

至少n個,不超過m個

定量修飾符默認是貪婪的,意思是它將匹配最長可能的輸入序列。也有不貪婪(又稱懶惰)的定量修飾符,它匹配最小可能性的輸入序列。他們在貪婪方面是一樣的,除了後面的?:

*?

Zero or more (non-greedy).

??

Zero or one (non-greedy).

+?

One or more (non-greedy).

{n}?

Exactly n (non-greedy).

{n,}?

At least n (non-greedy).

{n,m}?

At least n but not more than m (non-greedy).

定量修飾符默認允許回溯。也可以避免定量修飾符的回溯。他們除了在後面的+:外,都是一樣的。

*+

Zero or more (possessive).

?+

Zero or one (possessive).

++

One or more (possessive).

{n}+

Exactly n (possessive).

{n,}+

At least n (possessive).

{n,m}+

At least n but not more than m (possessive).

零寬斷言(Zero-widthassertions)

^

At beginning of line.

$

At end of line.

\A

At beginning of input.

\b

At word boundary.

\B

At non-word boundary.

\G

At end of previous match.

\z

At end of input.

\Z

At end of input, or before newline at end.

四處查看斷言(Look-aroundassertions)
四處查看斷言主張does(positive)的子模式或doesn't(negative)匹配在(look-ahead)後面或者(look-behind)前面【也就是從當前位置向前或向後查找】不包括包含的匹配文字。向後查找模式可能匹配的最大長度必須不是不受控制的。

(?=a)

Zero-width positive look-ahead.

(?!a)

Zero-width negative look-ahead.

(?<=a)

Zero-width positive look-behind.

(?<!a)

Zero-width negative look-behind.

分組(Groups)

(a)

A capturing group.

(?:a)

A non-capturing group.

(?>a)

An independent non-capturing group. (The first match of the subgroup is the only match tried.)

\n

The text already matched by capturing group n.

查看group()的詳細信息來了解如何捕捉分組是有限的和可訪問的。
運算符(Operators)

ab

Expression a followed by expression b.

a|b

Either expression a or expression b.

標記(Flags)

(?dimsux-dimsux:a)

Evaluates the expression a with the given flags enabled/disabled.

(?dimsux-dimsux)

Evaluates the rest of the pattern with the given flags enabled/disabled.

標記:

i

CASE_INSENSITIVE

case insensitive matching

d

UNIX_LINES

only accept '\n' as a line terminator

m

MULTILINE

allow ^ and $ to match beginning/end of any line

s

DOTALL

allow . to match '\n' ("s" for "single line")

u

UNICODE_CASE

enable Unicode case folding

x

COMMENTS

allow whitespace and comments

任何一個flags的集合可能是空的。例如,(?i-m)可能打開字元敏感,可能關閉多線模式,(?i)可能打開字元敏感,(?-m)可能關閉多線模式。
注意,在Android中,UNICODE字元永遠打開:字元不敏感的匹配永遠是unicode的。
還有兩個另外的標記不可設定的機制:CANON_EQ和LITERAL。
在Android中試圖使用CANON_EQ會拋出異常。

實現注釋(Implementationnotes)
在Android中的正則表達式實現是由ICU提供的。正則表達式的符號主要是在其他Java語言實現的超集。這就意味著目前的應用程序將如預期的正常工作。但是也有很小的可能性事,Android 可以接受的正則表達式,不能被其他實現所接受。有時候,Android將識別一個簡單、特例的、能被更有效處理的正則表達式。這對String中的便利的方法和Pattern中的方法都適用。

END
注意事項
認真學習

溫馨提示:親 答題不易解題更難 您的支持是我繼續答題的動力 麻煩採納 謝謝

⑸ java 正則表達式 (.+)怎樣理解舉個例子詳細說明。

正則表達式的符號理解嗎,* ? +
其中*代表的是0-無窮個個,比如/^w*$/,代表有0個或多個數字或字母
?代表是0-1個,比如/^d*$/,代表最多隻有一個數字,也可能沒有
+代表有1-無窮個,比如/^d+$/,代表最少有一個數字

.代表的是換行符之外的任意字元,它代表的字元,不是個數,前面三個代表的個數。

其實如果要代表個數可以用大括弧就可以了,也不用記這些符號,例如d{3,5},代表有3-5個數字。

⑹ java正則表達式怎麼表示數字

我搜藏的這些足夠你用了

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

二、校驗字元的表達式

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

三、特殊需求表達式

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

⑺ java正則表達式.用什麼表示

java正則表達式中,點表示任意字元(除了回車換行符外)
如果想表示點,其小數點的本意,需要加轉義符,\\. 這樣表示

⑻ 「\\|」這個符號在java正則表達式中表示的是什麼意思是或嗎

"\\|"就是表示"|"

|屬於正則中的元字元,表示或的意思,因此表示'|'字元本身必須轉義
java中\本身具有轉義作用,\\表示\ ,'\\|'傳給正則就是"\|",表示對|進行轉義,不作為特殊字元使用

⑼ java 正則表達式是什麼

不同情況下的正則表達式:

⑽ java正則表達式是什麼

java正則表達式是計算機科學的一個概念。正則表達式使用單個字元串來描述、匹配一系列符合某個句法規則的字元串。

在編寫處理字元串的程序或網頁時,經常會有查找符合某些復雜規則的字元串的需要。正則表達式就是用於描述這些規則的工具。換句話說,正則表達式就是記錄文本規則的代碼。

很可能你使用過Windows/Dos下用於文件查找的通配符(wildcard),也就是*和?。如果你想查找某個目錄下的所有的Word文檔的話,你會搜索*.doc。在這里,*會被解釋成任意的字元串。

和通配符類似,正則表達式也是用來進行文本匹配的工具,只不過比起通配符,它能更精確地描述你的需求——當然,代價就是更復雜——比如你可以編寫一個正則表達式,用來查找所有以0開頭,後面跟著2-3個數字,然後是一個連字型大小「-」,最後是7或8位數字的字元串(像010-12345678或0376-7654321)。

正則表達式的基本操作:

正則表達式定義:符合一定規則的表達式。

作用:用於專門操作字元串。

特點:用於一些特定的符號來表示一些代碼操作。這樣就簡化書寫。所以學習正則表達式,就是在學習一些特殊符號的使用。

好處:可以簡化對字元串的復雜操作。

弊端:符號定義越多,正則越長,閱讀性越差。

閱讀全文

與java正則表達式符號相關的資料

熱點內容
游俠下載的游戲都需要解壓沒 瀏覽:81
初次認識控制命令完整版 瀏覽:255
雙屏程序員 瀏覽:799
怎麼把兩個文件夾放到一個文件夾裡面 瀏覽:545
命令與征服大神宮 瀏覽:207
php發送簡訊驗證碼 瀏覽:505
前端伺服器如何接收http請求 瀏覽:796
程序員資質查詢 瀏覽:357
程序員被別人開除怎麼辦 瀏覽:888
解壓視頻看一下 瀏覽:129
android仿知乎日報 瀏覽:335
為什麼前端比安卓手機需求大 瀏覽:855
命令行執行關機命令 瀏覽:52
在學校心情不好怎麼解壓 瀏覽:116
我的世界基岩版伺服器怎麼讀取 瀏覽:161
快件命令 瀏覽:853
阿里雲06折伺服器能用嗎 瀏覽:421
h5個人中心源碼 瀏覽:221
下三角矩陣的壓縮存儲 瀏覽:922
招人用什麼app好用 瀏覽:722