任何RegEx向导都能帮助我理解如何涵盖不同的“差异”吗?
我得到了带有数字的街道名称的各种格式,不幸的是,现在这些都弄乱了,看起来像这样
混乱状态:
所需状态:
背景: 由于Google通讯录以某种方式设法弄乱了我所有的通讯录地址,因此先显示了门牌号码,然后显示了我要在Google表格中编辑的街道。
我很想“炫耀”我到目前为止的出色表现,但事实是:我没有计划涵盖所有不同情况的计划
答案 0 :(得分:1)
所以这是一种解决方案,它依赖于“数字”中没有空格。
= REGEXREPLACE(C6, ".+ ", "") & " " & REGEXEXTRACT(C6, ".+ ")
说明:
= REGEXREPLACE(C6, ".+ ", " ")
仅删除实际的数字部分(将其替换为空字符串)。我们只剩下街道名称,所以我们添加了一个空格。
第二部分,即正则表达式相同:
REGEXEXTRACT(C6, ".+ ")
再次查找该数字并将其粘贴到末尾。
答案 1 :(得分:1)
对于示例数据中的格式,您可以使用:
\b(\d+[a-z]?(?:-\d+[a-z]?)?)[ \t]+([a-zA-Z].+)
说明
\b
单词边界,请防止数字成为大单词的一部分(
第1组
\d+[a-z]?
匹配1个以上的数字和可选的a-z (?:-\d+[a-z]?)?
(可选),可以连字符,1+个数字和可选的a-z匹配)
关闭群组[ \t]+
匹配1个以上空格或制表符(
第2组
[a-zA-Z].+
匹配小写或大写字母a-z,然后按任意字符1+次)
关闭群组例如
= REGEXREPLACE(A1:A, "\b(\d+[a-z]?(?:-\d+[a-z]?)?)[ \t]+([a-zA-Z].+)", "$2 $1")
答案 2 :(得分:0)