簡體   English   中英

如何使用REGEX中的或選項提取和捕獲特定的多個單詞?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM