导航:首页 > 编程语言 > 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正则表达式符号相关的资料

热点内容
浙江苹果开发源码交付 浏览:179
现代汉语语法pdf 浏览:80
pdf制作技巧 浏览:610
免费解压啤酒视频 浏览:40
贵州云存储服务器 浏览:557
高中生做程序员的规划 浏览:813
领克app怎么绑定车辆别人的车 浏览:639
外语教学pdf 浏览:40
程序员释义 浏览:251
数控g71编程时应注意什么 浏览:413
捷联惯导算法心得 浏览:146
c4d命令的理解 浏览:568
pdf文档水印 浏览:917
高斯模糊算法java 浏览:354
小学乐高机器人编程作品 浏览:522
小猿搜题app怎么使用 浏览:420
内孔左螺纹编程 浏览:893
怎么查找程序员信息 浏览:538
adb日志导出到本地的命令 浏览:717
手机微信压缩包 浏览:263