⑴ 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 正則表達式是什麼
匹配首尾空格的正則表達式:(^s*)|(s*$)。
匹配html標簽的正則表達式:<(.*)>(.*)</(.*)>|<(.*)/>。
配空行的正則表達式: [s| ]* 。
整數或者小數:^[0-9]+.{0,1}[0-9]{0,2}$。
只能輸入數字:"^[0-9]*$"。
只能輸入n位的數字:"^d{n}$"。
只能輸入至少n位的數字:"^d{n,}$"。
只能輸入m~n位的數字:。"^d{m,n}$"
只能輸入零和非零開頭的數字:"^(0|[1-9][0-9]*)$"。
只能輸入有兩位小數的正實數:"^[0-9]+(.[0-9]{2})?$"。
只能輸入有1~3位小數的正實數:"^[0-9]+(.[0-9]{1,3})?$"。
只能輸入非零的正整數:"^+?[1-9][0-9]*$"。
只能輸入非零的負整數:"^-[1-9][]0-9"*$。
只能輸入長度為3的字元:"^.{3}$"。
只能輸入由26個英文字母組成的字元串:"^[A-Za-z]+$"。
只能輸入由26個大寫英文字母組成的字元串:"^[A-Z]+$"。
只能輸入由26個小寫英文字母組成的字元串:"^[a-z]+$"。
只能輸入由數字和26個英文字母組成的字元串:"^[A-Za-z0-9]+$"。
只能輸入由數字、26個英文字母或者下劃線組成的字元串:"^w+$"。
驗證用戶密碼:"^[a-zA-Z]w{5,17}$"正確格式為:以字母開頭,長度在6~18之間,只能包含字元、數字和下劃線。
驗證是否含有^%&',;=?$"等字元:"[^%&',;=?$x22]+"。
只能輸入漢字:"^[u4e00-u9fa5]{0,}$"。
驗證Email地址:"^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$"。
驗證一年的12個月:"^(0?[1-9]|1[0-2])$"正確格式為:"01"~"09"和"1"~"12"。
驗證一個月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正確格式為;"01"~"09"和"1"~"31"。
匹配中文字元的正則表達式: [u4e00-u9fa5]。
匹配雙位元組字元(包括漢字在內):[^x00-xff]。
應用:計算字元串的長度(一個雙位元組字元長度計2,ASCII字元計1)String.prototype.len=function(){returnthis.replace(/[^x00-xff]/g,"aa").length;}。
⑽ java正則表達式是什麼
java正則表達式是計算機科學的一個概念。正則表達式使用單個字元串來描述、匹配一系列符合某個句法規則的字元串。
在編寫處理字元串的程序或網頁時,經常會有查找符合某些復雜規則的字元串的需要。正則表達式就是用於描述這些規則的工具。換句話說,正則表達式就是記錄文本規則的代碼。
很可能你使用過Windows/Dos下用於文件查找的通配符(wildcard),也就是*和?。如果你想查找某個目錄下的所有的Word文檔的話,你會搜索*.doc。在這里,*會被解釋成任意的字元串。
和通配符類似,正則表達式也是用來進行文本匹配的工具,只不過比起通配符,它能更精確地描述你的需求——當然,代價就是更復雜——比如你可以編寫一個正則表達式,用來查找所有以0開頭,後面跟著2-3個數字,然後是一個連字型大小「-」,最後是7或8位數字的字元串(像010-12345678或0376-7654321)。
正則表達式的基本操作:
正則表達式定義:符合一定規則的表達式。
作用:用於專門操作字元串。
特點:用於一些特定的符號來表示一些代碼操作。這樣就簡化書寫。所以學習正則表達式,就是在學習一些特殊符號的使用。
好處:可以簡化對字元串的復雜操作。
弊端:符號定義越多,正則越長,閱讀性越差。