我想知道是否有人可以提供帮助。 我需要编写一个正则表达式,如果最后一个单词是字母数字(数字和字母)或单个数字或单个字母,则抛弃除最后一个单词之外的所有内容。
例如
一楼2号公寓
1A花园公寓
Block 2D
Suite 12
单位C
地下室平面
总务室
我想删除所有不属于实际数字的字词和字符,例如
一楼2号公寓应该成为2
1A花园公寓应该成为1A
Block 2D应该变成2D
套件12应该变为12
单位C应该成为C
地下室单位应变为空白,因为没有涉及数字
一般办公室应该变成空白
非常感谢提前
答案 0 :(得分:1)
您可以尝试使用正向前瞻,在字符串末尾断言您的要求。
(?:\b[A-Za-z]{1}|\d+|(?=.*\d)[a-zA-Z0-9]+)$
<强>解释强>
(?:
\b
[A-Za-z]{1}
|
\d+
|
(?=.*\d)
[a-zA-Z0-9]+
)
$
答案 1 :(得分:-1)
您使用的是哪种语言?您应该能够通过使用空格分割/爆炸字符串来获得最后一个单词,然后将正则表达式应用于最后一个单词。
如果单词的长度为1,您可能只想处理,以使您的正则表达式更易于理解和排除故障。此正则表达式适用于任何2个字母或更长的单词。
这是一个应该适用于最后一个词的正则表达式。它使用正向前瞻来确保存在一个字母和一个数字。 https://regex101.com/r/i5R9bq/1/
(?=.*[0-9])(?=.*[A-z])[0-9A-z]+