簡體   English   中英

R - 正則表達式 - 匹配以下模式:WhitespaceHyphenWhitespaceSingledigit

[英]R - Regular Expression - Match the following pattern: WhitespaceHyphenWhitespaceSingledigit

考慮以下數據結構(df):

ID 文本
1 例子
2 示例 - 1
3 示例 - 2
4 示例 - 3
5 示例 - 4
6 示例 - 5
7 示例 - 不適用
8 文本
9 文本 - 10
10 文本 - 20
11 文本 - 30
12 文本 - 40
13 文本 - 50
14 文本 - 60
15 文本 - 70
16 文字 - 80
17 文本 - 90
18 文本 - 100

在“文本”列中,我想查找包含以下模式的所有行: WhitespaceHyphenWhitespaceSingledigit

或者換句話說,我想提取以下行:

ID 文本
2 示例 - 1
3 示例 - 2
4 示例 - 3
5 示例 - 4
6 示例 - 5

目前我將 grepl() 函數與正則表達式結合使用。 但是我的嘗試都不喜歡

  • df[which(grepl("s{1}-\s{1}\d{1}$", df$Text)),]
  • df[which(grepl("\b\s{1}-\s{1}\d{1}\b$", df$Text)),]

已經解決了。 由於我是編程初學者,我將不勝感激任何建議。 提前致謝。

我會使用以下正則表達式模式:

\s-\s\d(?!\d)

這匹配空格之間的連字符,后跟一個數字,該數字本身后跟一個非數字字符或輸入的結尾。

完整的 R 代碼:

df[grepl("\\s-\\s\\d(?!\\d)", df$Text, perl=TRUE), ]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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