簡體   English   中英

使用 R 識別字符串中的特殊字符

[英]Identification of special characters in a string using R

我有一個數據字段,其中包含可能包含特殊字符(例如@、/、-)的公司名稱。 我需要確定數據字段是否包含任何特殊字符。 我已經嘗試了r 上列出的建議檢查字符串是否包含特殊字符我該如何處理像 \^$.?*|+()[{ 在我的正則表達式中的特殊字符? R,檢查字符串中是否有特殊字符,但它們沒有給出正確的結果。

最后兩個公司名稱應在檢查字段中給出 FALSE,但三種方法都沒有產生正確的結果。 請建議如何更正我的代碼。 謝謝。

    df <- data.frame(ID = c(1,2,3,4,5,6,7,8,9,10), Firm = c("Xi'an Feibao Technology Co Ltd", 
                                               "A&B PVT LTD", "Wonik Pne Co Ltd/Old","Wooree E&L Co Ltd"
                                               , "X-Fab Silicon Foundries SE", "Yongsan S&C", "T-Gaia Corp",
                                               "Suntech Co Ltd/Seoul","IBM","31 Inc"))
    
    df$nwords <- str_count(df$Firm, "\\w+")
    
    df$check1 <- grepl('[^[:alnum:]]', df$Firm)
    
    df$check2 <- grepl('[^[:punct:]]', df$Firm)
    
    pattern <- "/|:|\\?|<|>|\\|\\\\|\\|-|&|'|*"
    df$check3 <- grepl(pattern, df$Firm)

> print(df)
   ID                           Firm nwords check1 check2 check3
1   1 Xi'an Feibao Technology Co Ltd      6   TRUE   TRUE   TRUE
2   2                    A&B PVT LTD      4   TRUE   TRUE   TRUE
3   3           Wonik Pne Co Ltd/Old      5   TRUE   TRUE   TRUE
4   4              Wooree E&L Co Ltd      5   TRUE   TRUE   TRUE
5   5     X-Fab Silicon Foundries SE      5   TRUE   TRUE   TRUE
6   6                    Yongsan S&C      3   TRUE   TRUE   TRUE
7   7                    T-Gaia Corp      3   TRUE   TRUE   TRUE
8   8           Suntech Co Ltd/Seoul      4   TRUE   TRUE   TRUE
9   9                            IBM      1  FALSE   TRUE   TRUE
10 10                         31 Inc      2   TRUE   TRUE   TRUE

這似乎有效,

grepl('[[:punct:]]', df$Firm)
#[1]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE

暫無
暫無

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

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