【发布时间】:2015-07-20 01:12:39
【问题描述】:
我有一个正在使用的字符串,我试图只选择括号外的逗号,以便我可以根据它拆分字符串。这是我正在使用的字符串:
“LIVINGSTON(布莱顿、迪尔菲尔德、热那亚、哈特兰、奥西奥拉和蒂龙镇)、麦克姆、梦露、奥克兰、萨尼拉克、圣克莱尔和韦恩县”
我正在尝试使用问题标题中提到的正则表达式,它告诉我它无效。大概这是因为应该被转义的右括号被 R 识别为关闭匹配组的括号,所以第二个括号把所有东西都扔掉了。我只是好奇如何解决这个问题。这是我正在使用的语法:
counties <- "LIVINGSTON (Townships of Brighton, Deerfield, Genoa, Hartland,, Oceola & Tyrone), MACOMB, MONROE, OAKLAND, SANILAC, ST. CLAIR, AND WAYNE COUNTIES"
tmp <- strsplit(counties, ',(?!.*\\))')
我显然可以做与我现在正在做的相反的事情,而不是在括号外的逗号上拆分文本,只需替换括号内的逗号,然后在逗号上拆分字符串,但我'想知道为什么这不起作用。
【问题讨论】:
-
原来只是设置
perl=T解决了这个问题。 -
substr() 不接受
perl=参数,所以我在下面添加的解决方案我仍然认为是必要的。 -
@ForrestR.Stevens 我认为 substr 是操作员的错字,因为运行问题中的代码不会给出无效的正则表达式错误
-
@rawr 感谢您指出这一点,是的,这是一个错字。很抱歉造成混乱!我已编辑问题以反映正确的问题。