我试图在“/”之前和之后提取字符但没有成功。句子是:
XXXX YYY ZZZ - AV HAHEHRS, 3061 - SDDW ASDA DDSF - SAO JOSE DOS CAMPOS / SP - CEP: 00000-000
输出应为
SAO JOSE DOS CAMPOS / SP
我正在尝试str_extract(str, "- [a-zA-Z]{1,} / [a-zA-Z]{1,}")
,但它只是带我
CAMPOS / SP
答案 0 :(得分:1)
你的正则表达式中缺少空间。尝试:
str_extract(str, "- [a-zA-Z ]+ / [a-zA-Z ]+")
请注意字符类中的空格。此外,{1,}
是+
的长格式。
匹配将为"- SAO JOSE DOS CAMPOS / SP - CEP"
。您必须在第二步中删除-
,或使用零宽度后视:
str_extract(str, "(?<=- )[a-zA-Z ]+ / [a-zA-Z ]+")
为了完整起见,您可以在没有正则表达式的情况下执行此操作:按'-'
拆分输入,找到包含'/'
的部分,修剪。这也可能比正则表达式更快。</ p>