正则表达式删除除数字和一个字符外的所有内容

宝ao

我需要删除除数字之外的所有内容,如果存在,则从字符串中删除一个字符。这是我要提取的门牌号的街道名。字符串后面可能有更多内容,但不是必须的。

原始的字符串就像

Wagnerstrasse 3a platz53,eingang 3,Zi.3005 

我用这样的数字提取街道:

preg_match('/^([^\d]*[^\d\s]) *(\d.*)$/', $address, $match);

然后,在“ Wagnerstrasse 3a”上做一个if语句

if (preg_replace("/[^0-9]/","",$match[2]) == $match[2])

我也需要更改正则表达式以便也得到下一个字母,即使它们之间有一个空格也是如此,但前提是它是单个字母,这样我在这种情况下if是true /更好的是一个正则表达式可以删除所有内容,但以下:

Wagnerstrasse 3a       <-- expected result: 3a
Wagnerstrasse 3 a      <--- expected result 3 a 
Wagnerstrasse 3        <--- expected result 3
Wagnerstrasse 3 a bac  <--- expected result 3 a
宝ao

在进行了更多研究之后,并花了几个小时检查该主题的地址(这么多的地址),我找到了一个直到现在都没有失败的解决方案。可能是我没有意识到,但这似乎还不错。这是一个以前从未见过的正则表达式...如果该行中没有数字,则该正则表达式将失败。所以我做了一些骇客活动(提到了数以百万计的九个……)

基本上,正则表达式非常适合在结尾处查找数字,并在文本的中间保留数字,但对于上述事实以及街道以数字开头的情况,则不可行。因此,我做了另一个小小的尝试,将第一个数字炸开了,并抓住了它作为数字。

if ($this->startsWithNumber($data))
{
    $tmp = explode(' ', $data);
    $data = trim(str_replace($tmp[0], '', $data)) . ' ' . $tmp[0];
}
if (!preg_match('/[0-9]/',$data)) 
{
    $data .= ' 99999999999999999999999999999999999999999999999999999999999999999999999';
}
$data = preg_replace("/[^ \w]+/",'',$data);

                    $pcre = '/\A\s*
(.*?) # street
\s*
\x2f? # slash
(
    \pN+\s*[a-zA-Z]? # number + letter
    (?:\s*[-\x2f\pP]\s*\pN+\s*[a-zA-Z]?)* # cut
) # number
\s*\z/ux';
                    preg_match($regex, $data, $h);

$compare = strpos($h[2],'999999999999999999999999999999999999999999999999999999999999999999999999');
                    if ($compare !== false) {
                        $h[2] = null;
                    }
                    $this->receiverStreet[] = (isset($h[1])) ? $h[1] : null;
                    $this->receiverHouseNo[] = (isset($h[2])) ? $h[2]  : null;

public function startsWithNumber($str)
    {
        return preg_match('/^\d/', $str) === 1;
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式,删除PHP中除一个字符外的所有字符

来自分类Dev

正则表达式:删除除第一个字符和最后一个数字以外的所有字符

来自分类Dev

正则表达式删除所有非数字和如果等于零的第一个字符。

来自分类Dev

Android Java正则表达式匹配除一个字符外的所有字符

来自分类Dev

Java正则表达式除最后一个字符外的所有字符

来自分类Dev

正则表达式 - 匹配一个字符后的所有数字

来自分类Dev

正则表达式只有一个字符和7个数字

来自分类Dev

正则表达式从一个字符开始获取两个字符之间的所有内容

来自分类Dev

至少一个字符和一个数字的正则表达式

来自分类Dev

正则表达式替换字符串中除一个字符外的所有字符

来自分类Dev

正则表达式 - 删除最后一个字符

来自分类Dev

正则表达式替换所有匹配项,但不替换第一个和最后一个字符

来自分类Dev

正则表达式在所有大写单词之前插入一个字符

来自分类Dev

正则表达式-删除第一个字母后的所有内容

来自分类Dev

正则表达式:匹配所有内容(一个字除外)

来自分类Dev

使用正则表达式查找出现的内容,然后仅删除匹配表达式中的第一个字符

来自分类Dev

“至少8个字符长,包括至少一个字母和一个数字”的正则表达式

来自分类Dev

正则表达式:匹配两个字符之间的所有字符,除非也被另一个字符包围

来自分类Dev

正则表达式帮助,一个字符,一个数字和选项spl字符

来自分类Dev

正则表达式帮助,一个字符,一个数字和选项spl字符

来自分类Dev

Javascript:以任意顺序匹配8位数字,一个字符和一个连字符的正则表达式

来自分类Dev

除所有空格和一个特殊字符外的所有内容的正则表达式

来自分类Dev

正则表达式,至少一个字符和一个数字,重复不超过两个

来自分类Dev

如何把 xpages 正则表达式(第一个字符和最后一个字符)不能是特殊字符

来自分类Dev

正则表达式匹配一个数字序列和一个字符。它们之间

来自分类Dev

正则表达式的第一个和最后一个字符必须是数字

来自分类Dev

正则表达式表达大写的第一个字符

来自分类Dev

正则表达式表达大写的第一个字符

来自分类Dev

在R中使用正则表达式同时删除第一个和最后一个字符

Related 相关文章

  1. 1

    正则表达式,删除PHP中除一个字符外的所有字符

  2. 2

    正则表达式:删除除第一个字符和最后一个数字以外的所有字符

  3. 3

    正则表达式删除所有非数字和如果等于零的第一个字符。

  4. 4

    Android Java正则表达式匹配除一个字符外的所有字符

  5. 5

    Java正则表达式除最后一个字符外的所有字符

  6. 6

    正则表达式 - 匹配一个字符后的所有数字

  7. 7

    正则表达式只有一个字符和7个数字

  8. 8

    正则表达式从一个字符开始获取两个字符之间的所有内容

  9. 9

    至少一个字符和一个数字的正则表达式

  10. 10

    正则表达式替换字符串中除一个字符外的所有字符

  11. 11

    正则表达式 - 删除最后一个字符

  12. 12

    正则表达式替换所有匹配项,但不替换第一个和最后一个字符

  13. 13

    正则表达式在所有大写单词之前插入一个字符

  14. 14

    正则表达式-删除第一个字母后的所有内容

  15. 15

    正则表达式:匹配所有内容(一个字除外)

  16. 16

    使用正则表达式查找出现的内容,然后仅删除匹配表达式中的第一个字符

  17. 17

    “至少8个字符长,包括至少一个字母和一个数字”的正则表达式

  18. 18

    正则表达式:匹配两个字符之间的所有字符,除非也被另一个字符包围

  19. 19

    正则表达式帮助,一个字符,一个数字和选项spl字符

  20. 20

    正则表达式帮助,一个字符,一个数字和选项spl字符

  21. 21

    Javascript:以任意顺序匹配8位数字,一个字符和一个连字符的正则表达式

  22. 22

    除所有空格和一个特殊字符外的所有内容的正则表达式

  23. 23

    正则表达式,至少一个字符和一个数字,重复不超过两个

  24. 24

    如何把 xpages 正则表达式(第一个字符和最后一个字符)不能是特殊字符

  25. 25

    正则表达式匹配一个数字序列和一个字符。它们之间

  26. 26

    正则表达式的第一个和最后一个字符必须是数字

  27. 27

    正则表达式表达大写的第一个字符

  28. 28

    正则表达式表达大写的第一个字符

  29. 29

    在R中使用正则表达式同时删除第一个和最后一个字符

热门标签

归档