博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则表达式 我遇到的
阅读量:5235 次
发布时间:2019-06-14

本文共 1319 字,大约阅读时间需要 4 分钟。

语法


小括号会被无视
所以经常用来使表达式更方便阅读
关键字 :
?
所以如果要搜索
"?
" , 需要转义 -- >   \?
"换行" 也需要转义

\s+
匹配至少一个( 一个或多个 )空白字符 因为 +
\s 表示空白字符。包括,空格,制表符等
“ ” 只表示1个空格 , 在 idea 里
\s* 表示若干个空格(可以是0个) , 因为 *
如果就1个呢?
[ ]+ 只表示多个空格

例子  我遇到的

/\?
(.+)/
以 ? 开头 , 后面匹配任意东西
/\{\{(.+?)\}\}
/g
{
可以改写为
/(
\{
)(\{
)(.+?)(\})(\})
/
g
/\{\{(.+?)\}\}/g完整的意思就是:在全部范围内查找匹配前后有两组花括号的字符串.
以下是拆解 :
最前面的“/”与最后面的“/”是分隔符,表示正则表达式的开始与结束.
g  找出所有符合正则表达式的
“g”  表示在正则表达式中使用的 global(全局)的状态
也被称为全局匹配
将查找所有符合的项,而不仅仅是第一个
【相关的标志还有i(ignoreCase,表示忽略大小写)、m(multiline,表示允许跨行)】
\{ 左括号
然后我们再来看中间的主体部分:\{\{(.+?)\}\}花括号{}是正则里的限定符.但是我们这里是要找字符串里的花括号,所以前面加个“\”来表示是要找字符的花括号.“\{\{”“\}\}”就是找前后两组花括号.
“.”表示任意字符
“+”表示前面表达式一次乃至多次.
“?”表示匹配模式是非贪婪的
例如:“{
{}}”、“{
{asdfasdfasdf56745}}”、“{
{yuyuy#$%8787 9+_)(*)87 }}”
}
txt 正则表达式 替换掉所有换行
不是用正则 , 直接替换掉win的 /r/n
https://jingyan.baidu.com/article/922554464a2a26851648f408.html
清晰的写法 : 尽量用上左右小括号
以 1 开头的行
^(1)
用这个正则搜索如下文本 :
1 这行被选中
21
不以 1 开头的行
^(?!1)
用这个正则搜索如下文本 :
1
21 
这行被选中
不以 "    SocketInputStream" 开头 , 有 "input = null;"  的行
^(?!    SocketInputStream)(.*)(input = null;)
空格直接用 , 不需要数一数 , 再手动换成 \s
分行不用转义
不以 "
    SocketInputStream"
 开头 , 有 "
input = null;
"
  
的行
^(    SocketInputStream)(.*)(input = null;)
不以 "bc结尾
(?<!bc)$
匹配除了换行以外的字符, 1个和以上
.+
由1个或多个小写字母组成,但不以bc结尾的字符串,就可以这样写^[a-z]+(?<!bc)$
(Dog){3}
匹配字符串   DogDogDog

转载于:https://www.cnblogs.com/xiaoCong2016/p/8607864.html

你可能感兴趣的文章
Android中点中overlay弹出带尾巴的气泡的实现
查看>>
mxnet record 打包 Array
查看>>
逐层指定学习率
查看>>
博客园增加对emoji表情的支持,让博文更加生动
查看>>
C#: Delegate and Event
查看>>
Mybatis接口中传递多个参数
查看>>
webView 显示一个简单的网页
查看>>
在Unity中使用 luajit 64位加密
查看>>
virualbox andirodx86
查看>>
Dreamweaver层使用八定律
查看>>
SSH整合 pom.xml
查看>>
Java IO流学习总结
查看>>
day22 01 初识面向对象----简单的人狗大战小游戏
查看>>
shell的while循环
查看>>
数组的几种常用方法总结
查看>>
递归函数,二分运算,正则表达式
查看>>
阅读软件工程的问题
查看>>
【Netty】UDP广播事件
查看>>
(4)Numpy+矩阵计算+和生成
查看>>
ttt
查看>>