[英]How to extract and capture particular multiple words using or option in REGEX.?
我對REGEX有小的查詢和要求。
我在一個位置設置了一組文件,我只想捕獲一些重要的文件:
輸入為:
```
-rw-r----- 1 osm_user osm_user 51200310 Dec 2 15:55 osm_ms01.log00025
-rw-r----- 1 osm_user osm_user 51200201 Dec 2 19:52 osm_ms01.log00026
-rw-r----- 1 osm_user osm_user 51200010 Dec 2 23:49 osm_ms01.log00027
-rw-r----- 1 osm_user osm_user 1251657 Dec 3 02:53 osm_ms01.out00098
-rw-r----- 1 osm_user osm_user 14534 Dec 3 03:23 osm_ms01.out00099
-rw-r----- 1 osm_user osm_user 2124021 Dec 9 00:42 access.log
-rw-r----- 1 osm_user osm_user 3406259 Dec 9 00:44 osm_ms01.out00100
-rw-r----- 1 osm_user osm_user 14632 Dec 9 00:55 osm_ms01.out00101
-rw-r----- 1 osm_user osm_user 4142712 Dec 9 01:00 osm_ms01-diagnostic.log
-rw-r----- 1 osm_user osm_user 51200768 Dec 9 13:20 osm_ms01.log00028
drwxr----- 2 osm_user osm_user 4096 Dec 11 00:58 metrics
-rw-r----- 1 osm_user osm_user 1101990 Dec 11 01:38 osm_ms01.out
-rw-r----- 1 osm_user osm_user 1150229 Dec 11 01:38 osm_ms01.log
```
在上面的輸入中,我只想捕獲以下這些文件:
```
access.log
osm_ms01-diagnostic.log
osm_ms01.log
```
我在REGEX下嘗試了此方法,但找不到任何解決方案。
使用正則表達式
1) .*\\.log.* 2) (access.log|osm_ms01.log|osm_ms01-diagnostic.log)
在第二個正則表達式中,我可以捕獲信息,但是不需要捕獲其信息。
請幫我。
采用
(access.log|osm_ms01.log|osm_ms01-diagnostic.log)$
從結尾匹配
我覺得這類似於此頁面
如果將每一行放入數組元素中,並檢查字符串是否包含所需的字符串。
您需要檢查.log中是否沒有其他字符。 為此,您可以在之前和之后檢查單詞邊界:
\b(access.log|osm_ms01.log|osm_ms01-diagnostic.log)\b
所有功勞歸@stribizhev
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.