当前位置: 首页 > 知识库问答 >
问题:

正则表达式:如果字母与数字相邻,则添加空格

赵嘉赐
2023-03-14

我使用的是PHP,但对正则表达式不是很好。我需要一个preg_替换,如果字母或数字相邻,可以添加空格。

这些是场景:

mystreet12 -> mystreet 12
mystreet 38B -> mystreet 38 B
mystreet16c -> mystreet 16 c
my street8 -> my street 8

谢谢

共有3个答案

顾高翰
2023-03-14

使用POSIX类实现可移植性:

preg_replace("/([[:alpha:]])([[:digit:]])/", "\\1 \\2", $subject);

获取第一个转换的值。

preg_replace("/([[:digit:]])([[:alpha:]])/", "\\1 \\2", $subject);

得到第二个。

齐锐进
2023-03-14

比如:

preg_replace("/([a-z]+)([0-9]+)/i","\\1 \\2", $subject);

应该会让你走得更远:)

张丁雷
2023-03-14

你可以使用lookaround来匹配这样的位置:

preg_replace('/(?<=[a-z])(?=\d)|(?<=\d)(?=[a-z])/i', ' ', $str);

根据您如何定义字母,您可能需要调整[a-z]

需要使用Lookarounds才能使其与以下字符串正常工作:

0a1b2c3

如果没有解决方案,就会失败。

 类似资料:
  • 其中,我需要包括连字符和空格。 这意味着还必须可以输入值“”。

  • 我试图构建一个正则表达式来匹配这些字符串: jfldfldf ldjfdlf ldfl ldfldf 8998 dfjldjf 89dfdf DF899 ljdljf[dff]DFDFDF(fdfdf)898 要求: 字符串应仅以任何小写或大写字符(A-Z)开头 它可能包含空格或括号() 不允许任何其他特殊字符 我尝试了,但它仍然接受其他特殊字符。

  • 我有以下正则表达式在Java: 如果输入“a334234234”,验证将失败。但是,如果输入“a3423423fsfsdf”,验证将成功。。。 以下正则表达式也是如此,它检查输入是否仅为数字: 如果输入4SASD,验证将失败,但如果输入3dfsdf22,验证将成功。你能帮我做这个吗?

  • 问题内容: 如果我有一个类似“ 11E12C108N”的字符串,该字符串是字母组和数字组的串联,那么如何在没有分隔符的情况下拆分它们? 例如,我希望得到的拆分为: 我现在有这个。 这给了我: 我可以一次完成原始正则表达式的完全分割吗?不必在中间令牌上再次运行正则表达式? 问题答案: 使用以下正则表达式,并获取所有匹配项的列表。那就是您要寻找的。 在Java中,我认为代码如下所示:

  • 我需要在以下条件下使用C#中的正则表达式匹配字符串: 整个字符串只能是字母数字(包括空格) 最大长度不得超过15个字符(包括空格) 首先 如果这些先决条件中的任何一个被打破,比赛就不会进行。 以下是我目前掌握的情况: 下面是一些应该匹配的测试字符串: 堆栈溢出 伊姆特最伟大的 一个 超人23s 一二三 还有一些不应该匹配的(注意空格): 堆叠 [double_space] 溢流岩石 23你好 这是

  • 问题内容: 我需要将Python中的一个表达式与仅匹配偶数个字母出现的正则表达式进行匹配。例如: 偶数应匹配。 问题答案: 试试这个正则表达式: 并且如果s不需要是连续的: