[英]REGEX pattern match in R for Course number
我需要確定具有xx.3xxxxxx的匹配課程編號。 這些是課程編號的一些例子。
26.3730004
27.0210000
26.3730009
26.7114001
23.9610071
26.0A34430
23.3670005
26.0B05430
我嘗試了很多模式,我使用的一個例子是下面的模式。 它沒有得到任何匹配。
“[^ 0-9] {2} \\ Q. \\ E3 [^ 0-9] + $”
我嘗試使用grep和grepl。 我實際上需要代碼來返回索引。
此代碼顯示我嘗試標記具有匹配項的行。
Teacher$virtual[
which(
grepl("[^0-9]{2}\\Q.\\E3[^0-9]+$",Teacher$CourseNumber))]
<- "1"
我需要從我的數據框中刪除具有該模式的課程編號的任何行。 XX.3XXXXXX
但是,我的代碼沒有找到任何匹配。 你能幫我么?
在這里,這個簡單的表達可能會涵蓋:
^[0-9]{2}\.[3].+$
它后面有一個[3]
邊界.
。 沒有開始和結束錨點它可能會工作:
[0-9]{2}\.[3].+
如果有必要,我們可以增加或減少邊界。
你應該用
grepl("^[0-9]{2}\\.3", Teacher$CourseNumber)
看到正則表達式圖 :
細節 :
^
- 字符串的開頭 [0-9]{2}
- 兩位數 \\\\.
- 一個點(請注意,正則表達式轉義是字面反斜杠,但在字符串文字中, "..."
,單個反斜杠用於形成字符串轉義序列,因此反斜杠必須為double才能獲得必要的文字反斜杠字符為正則表達式逃脫) 3
- 3
字符。 注意 :如果你想使用\\Q
和\\E
in-pattern引用(在字面上處理所有字符之間),你需要使用PCRE正則表達式,添加perl=TRUE
並使用
grepl("^[0-9]{2}\\Q.\\E3", Teacher$CourseNumber, perl=TRUE)
現在,點被視為文字點,而不是.
元字符的任何字符,但換行字符匹配(在PCRE正則表達式, .
不符合行默認打破字符)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.