我试图提取“/”之前和之后的字符,但没有成功。句子是:
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
在你的正则表达式中缺少空格。尝试:
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 ]+")
后视是支持者gregexpr https://stackoverflow.com/a/8834874/18771.
为了完整起见,您可以在不使用正则表达式的情况下执行此操作:将输入拆分为'-'
,找到包含的部分'/'
, 修剪。这也可能比正则表达式更快。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)