展开全部

方法/步骤

Java正则表达式正则表达式的语法知识:Java支持Perl 5 正则表达式语法的一个子集。e69da5e6ba903231313335323631343130323136353331333337383262一个重要的问题是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.

(?

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 表达式写法_java正则表达式的写法相关推荐

  1. java 正则 实例_Java正则表达式实例详解

    创建正则表达式 你可以从比较简单的东西入手学习正则表达式.要想全面地掌握怎样构建正则表达式,可以去看JDK 文档的java.util.regex 的Pattern 类的文档. 字符 B 字符B \xh ...

  2. Java for 语句简化写法_Java 8 Lambda 写法与简化

    Java 8 的 Lambda 表达式的实现方式还是基于已有的字节码指令,由 Lambda 表达式的方法签名结合上下文并经由 SAM 推断出正确的类型来.Java 8 的 Lambda 完整书写格式是 ...

  3. java定时器写法_java定时器的写法是什么样?

    定时器的用法是java核心基础之一,很多特殊功能都需要用到定时器,下面一起来看看定时器是如何编写的吧. 示例:一个具备周期性定时(毫秒级);单时刻定时(秒级);多时刻定时(秒级).后两个时间的设置必须 ...

  4. java内部类写法_Java匿名内部类的写法示例

    前言 在Java中调用某个方法时,如果该方法的参数是一个接口类型,除了可以传入一个参数接口实现类,还可以使用匿名内部类实现接口来作为该方法的参数. 匿名内部类其实就是没有名称的内部类,在调用包含有接口 ...

  5. java正则 括号_java正则表达式获取大括号小括号内容并判断数字和小数亲测可用...

    获取大括号小括号内容 项目开发用到了,暂做个简单记录 private static String regex = "\\{([^}]*)\\}";//匹配大括号 private s ...

  6. java matcher遍历_java正则表达式之Pattern与Matcher类详解

    Pattern.split方法详解 /** * 测试Pattern.split方法 */ @Test public void testPatternSplit() { String str = &qu ...

  7. java密码正则_java正则表达式密码程序

    正则表达式 正则表达式是用来指定字符串模式的,可以方便的处理文本信息.当需要使一个字符串符合特定的字符串格式的时候,就需要使用正则表达式.例如:用户名.密码的格式,区号.电话号码所固有的格式等,都可以 ...

  8. java电话号码开头_Java正则表达式验证电话号码

    在注册会员时,经常需要输入电话号码,电话号码是指手机号码或者固定电话.如果输入的内容不合法,则会向用户输出提示.本实例模拟实现电话号码的验证功能,接收用户在控制台输入的电话号码,然后进行判断,并将结果 ...

  9. java 正则 大括号_java正则表达式获取大括号之间的内容

    "; String reg2 = " "; System.out.println(test.replaceAll(reg, "###")); Syst ...

最新文章

  1. 【Spring】spring5新特性
  2. ggplot2笔记4 语法基础
  3. 哥德尔90年前的「不完备性定理」,奠定了计算机与AI的理论基础
  4. Python脚本-批量修改文件名
  5. 直播报名 | 超低延时直播架构解析
  6. 【Java】Float计算不准确
  7. QT Creator应用程序开发——信号与槽
  8. Vim高级使用 - CentOS下使用VIM打造C/C++开发环境
  9. html表格展开明细,展开/折叠HTML表格
  10. 按值设置选择选项“已选择”
  11. django开源电子文档管理系统_基于 Python 开发的在线文档系统
  12. python3入门经典100例-ZH奶酪:编程语言入门经典100例【Python版】
  13. [从零开始学FPGA编程-4]:快速入门篇 - 操作步骤1 - 常见可编程器件PROM、PLA、PAL、GAL、CPLD、FPGA
  14. django+javascrpt+python实现私有云盘代码
  15. sentinel 实时监控服务
  16. sql UPDATE的时候可以使用join吗
  17. [极客大挑战 2019]Http1(BUCTF在线评测)
  18. (附源码)APP+springboot垃圾自动分类管理系统 毕业设计 160846
  19. Numpy:repeat用法图解
  20. 抖音短视频怎样引流?有哪些方法?

热门文章

  1. Docker基础下(学习笔记)
  2. 51单片机开发:通过74HC595控制LED点阵
  3. MES系统选型与价格有什么关系
  4. 视频如何拼接?建议收藏这些方法
  5. linux命令的理解
  6. 在中国想发财的22条秘诀
  7. Linux学习之路--基础命令(4)
  8. tensorflow cudart64_101.dll 版本问题
  9. IOS 模拟器截图位置
  10. 【python3数据结构】图Graph及DFS(深度优先搜索)BFS(广度优先搜索)