如何检查字符串是否包含R中的罗马数字?

时间:2018-03-07 09:05:58

标签: r regex text-analysis roman-numerals

我的数据集&ad;'中有一个住宅地址专栏。我想检查没有数字(包括罗马数字)的地址。 我正在使用

ad$check <- grepl("[[:digit:]]",ad$address)

标记没有数字的地址。如何处理包含罗马数字的地址?

例如:&#34; X楼,DLF Building-III,ABC City&#34;

1 个答案:

答案 0 :(得分:1)

你需要制作正则表达式字符串。

编辑(我的第一个回答是胡说八道):

x <- c("floor Imaginary,  building- Momentum, ABC City", "floor X, DLF Building- III, ABC City")
# here come the regex 
grepl("\\b[I|V|X|L|C|D|M]\\b", x, ignore.case = FALSE)
[1] FALSE  TRUE

要打破它:

\\b是字边界。这意味着罗马数字必须以空格,标点符号或字符串的开头/结尾开头或尾随。

[I|V|X|L|C|D|M]&#34;字&#34;我们正在寻找的只能包含用于罗马数字的符号。据我所知,这些应该都是。

ignore.case = FALSE如果省略该选项,这是通常设置的标准。但是,如果它对于手头的操作很重要,我会发现它更安全。

谨慎使用,例如,一家名为&#34; LCD Industries&#34;也会被标记为罗马数字。您可以将我的方法与this answer结合使用,以进一步测试符号的顺序是否正确。

请测试您的数据并报告其是否有效。