정규식에 대한 책을 읽은 많은있다, 나는 약간의 이상 호도하고 그것으로 많은 시간을 넣어,하지만 지금은 나에게 더 학습을위한 조언과 방향을 제시하는 사람을 얻을 수 있었으면하고 정규식. 내 데이터의 열 중의 자동차 참조가 라인을 찾기 위해 GREP을 사용하고사용은
는 SCC
을 설정합니다. 그래서 다음 명령을 사용합니다 :
sapply(SCC, grep, pattern="(vehicle|motor.*vehicle|motor)",
ignore.case = TRUE,
fixed = FALSE)
그리고 나는 가능한 모든 관심 분야에있는 모든 열의 목록을 얻습니다.
그때 나는 모든 행이 캡처 된 상황을 확인하기 위해) 그렙 (의value=TRUE
인수를 사용하고, 올라가지 (독특한()).
여기에 해당 명령 일부 이러한 항목은 다음과 같습니다
unique(unlist(sapply(SCC, grep, pattern="(vehicle|motor.*vehicle|motor)", ignore.case=TRUE, fixed=FALSE, value=TRUE)))
[1] "Int Comb /Engine Testing /Rocket Engine Testing /Rocket Motor: Solid Propellant"
[2] "Highway Veh - Gasoline - Light Duty Vehicles (LDGV) - Total: All Road Types"
[3] "Highway Veh - Gasoline - Light Duty Vehicles (LDGV) - Rural Interstate: Total"
[4] "Highway Veh - Gasoline - Light Duty Vehicles (LDGV) - Interstate: Rural Time 1"
[5] "Highway Veh - Gasoline - Light Duty Vehicles (LDGV) - Interstate: Rural Time 2"
.
.
.
[329] "Off-highway Gasoline, 4-Stroke /Recreational Equipt /Motorcycles: Off-road"
[330] "Off-highway Gasoline, 4-Stroke /Recreational Equipt /All Terrain Vehicles"
[331] "Off-highway Gasoline, 4-Stroke /Recreational Equipt /Specialty Vehicles/Carts"
[332] "Off-highway LPG /Recreational Equipt /Motorcycles: Off-road"
내 그렙의 대상이 있었는지 (411 개)의 고유 항목의 총이 있었다 (차량 | 모터 * 자동차 | 모터.). 나는 이것을 바꾸어 문자열 'Rocket Motor'가있는 줄 [1]이 포함되지 않도록하려고했습니다. 그래서, 나는이 패턴을 사용합니다 = "(자동차 | 모터. * 자동차 | 오토바이)".
나는 내가 원하는 것을 가지고 있지만 독점 문자열과 일치하는 정규 표현식을 사용하는 방법이 있는지 궁금했다. 나는 정규식을 사용하는 방법에 대해 조금 읽고이 같은 것을 사용하여 시도 :pattern = "^(?=.*?vehicle|motor.*vehicle|motor)((?!\brocket motor\b).)*$"
나는 로켓 모터 '와 모든 일치하도록 시도'차량, 자동차, 모터를,하지만 '. 작동하지 않고 오류가 발생합니다. R, 특히 grep 및 관련 함수에서 regex 사용에 대해 자세히 알고 싶습니다. 의미있는 정규식을 사용하는 것이 얼마나 가까운 거리에 있습니까? 특히 R에 사용할 수있는 정규식 유형에 제한이 있습니까? 나는 앞으로 정규 표현식을 사용하게 될 것이고 모든 노력에서 조금 더 배우고 싶습니다.
다음은 내가 가진 오류는 다음과 같습니다
Error in FUN(X[[i]], ...) :
invalid regular expression '^(?=.*vehicle|motor.*vehicle|motor)((?rocket moto).)*$', reason 'Invalid regexp'
@Jota 내가 틀렸다고해도 대답 상자에 들어갑니다. – djechlin
감사합니다. 조타, 이제 R에서 정규 표현식에 대해 조금 더 잘 알고 있습니다. 잘못된 정규 표현식 오류가 발생하지 않습니다. 그것은 내가 지금 필요로하는 정확한 대답 일 것이다. – Bhail