正则表达式 工作案例
目录
- 一. `(正常|異常)終了`
- 二. `|` 和 `\` 的使用
- 三. `(awt|qch|suica)への.*?要求`
- 四. `メール(アドレス)?|mail`
- 五. `決済(取消)?のトランザクションIDを払い出しました`
- 六. `c2(h|k)[a-z]{2}\d{2}a`
- 七. `^/.*?(?=:)`
- 八. `(?<=(gz|log):)\d+(-\d+)?(?=\s)`
- 九. `^\d+(-\d+)?(?=\s)`
- 十. `(?<=\/)(\.20[2-3][0-9].{6})`
- 十一. `(mpl|qch|ang|flv|pud|srp|trt).*?(?=_app)`
- 十二. `去除重复行`
一. (正常|異常)終了
|
:用来表示或()
:用来分组
異常終了
正常終了
まだ終了
二. |
和 \
的使用
⏹\[ERROR\]|\[WARN\]|エラー|Exception
|
:用来表示或\
:用来转义
[ERROR]発生
[WARN]発生
エラー発生
Exception発生
三. (awt|qch|suica)への.*?要求
.*
:表示任意数量的字符?
:表示非贪婪模式
awtへの要求をしています。
qchへの非同期要求をしています。
suicaへのテスト要求をしています。
四. メール(アドレス)?|mail
(アドレス)?
:表示アドレス
为可选项
メール=1355@163.com
メールアドレス=1355@163.com
mail=1355@163.com
五. 決済(取消)?のトランザクションIDを払い出しました
(取消)?
:表示取消
为可选项
決済のトランザクションIDを払い出しました
決済取消のトランザクションIDを払い出しました
六. c2(h|k)[a-z]{2}\d{2}a
[a-z]{2}
:2位数的小写英文字母\d{2}
:2位数的数字
c2hak02a
c2kbt01a
c2hap09a
七. ^/.*?(?=:)
^/.*?
:以/
开头的任意位内容,其中?
表示非贪婪模式(?=:)
:表示任意位内容只截止到:
处,:
在此处只是起到辅助匹配作用,并不匹配到结果中
/logback/c2hak02a/tomcat/current/logs/spl/.2024033109mpl_test1_app.log:03210429-47789 045
/logback/c2kbt01a/tomcat/current/logs/spl/.2024033109qch_test2_app.log.tar.gz:03210154-24389 569
/logback/c2hap09a/tomcat/current/logs/spl/.2024033109ang_bis01_app.log:06334561 478
八. (?<=(gz|log):)\d+(-\d+)?(?=\s)
\d+
:任意位数字(-\d+)?
:-47889
这种带着-
的数字是可选项(?<=(gz|log):)
:\d+(-\d+)?
的前面是gz:
或者是log:
,只是起到辅助匹配作用,并不匹配到结果中(?=\s)
:\d+(-\d+)?
的后面是空格,只是起到辅助匹配作用,并不匹配到结果中
九. ^\d+(-\d+)?(?=\s)
^\d+(-\d+)?
:数字开头的内容,(-\d+)?
是为了匹配带-
的数字(?=\s)
:^\d+(-\d+)?
的后面是空格,只是起到辅助匹配作用,并不匹配到结果中
2323 SEQIN mmm isuuePayId=5768awe uuid=woenoo; jmw_state=success method=paypay info=ppp
03210154-24389 SEQOUT COST=45726
2345 SEQIN mmm isuuePayId=34895ry uuid=;ljkler jmw_state=faile method=alipay info=ddd
03210154-28329 SEQOUT COST=34855
十. (?<=\/)(\.20[2-3][0-9].{6})
(\.20[2-3][0-9].{6})
:用来匹配.年月日
,.{6}
表示匹配6位任意的内容,此处指代MMDD
(?<=\/)
:表示.
前面的/
,只是起到辅助匹配作用,并不匹配到结果中
十一. (mpl|qch|ang|flv|pud|srp|trt).*?(?=_app)
- 表示匹配
mpl
,qch
,ang
开头到_app
为止的任意内容 .*?
中的?
表示非贪婪模式(?=_app)
:到_app
为止的任意内容,只是起到辅助匹配作用,并不匹配到结果中
十二. 去除重复行
(^.+\n)\1
:标记两行一模一样的内容(^.+\n)\1
替换为\1
,可以去除重复行