【问题标题】:php preg_replace - replace part of socialphp preg_replace - 替换部分社交
【发布时间】:2011-10-17 13:49:39
【问题描述】:

我想查找任何模式匹配:###-##-####

并将###-##, 替换为***-**

但留下-####

我在下面尝试了这个,但根本没有替换任何东西。

preg_replace('/(^[\d]{3})(-)([\d]{2})(-[\d]{4}$)/','\2\4',$myText);

感谢任何帮助


更新,在尝试了以下一些建议之后,这是我目前的整个代码字符串。我正在将第二个回显输出与第一个进行比较......并且社交号码都保持不变。

另外,正如下面提到的,我的字符串确实包含的不仅仅是一个社交......它有数千个字符长。我认为这是我真正的问题。对不起,如果我一开始没有把它弄清楚。

    //Make the CSC credit report request.
    $strCscResponse = $Csc->makeRequest($strFixedFormatRecord);

    echo "<br/><br/><pre>" . $strCscResponse  . "</pre><br/><br/>";

    $strCscResponse = str_replace("!", " ", $strCscResponse);

    $strCscResponse = preg_replace('/^\d{3}-\d{2}(-\d{4})$/','***-**$1',$strCscResponse);

    echo "<br/><br/><pre>" . $strCscResponse  . "</pre><br/><br/>";

更新

我想标记所有答案和“答案”只是因为我没有澄清字符串不仅仅是一个社交。感谢您对这个问题的帮助,令人尴尬的是,这已经让我疯狂了几天。

【问题讨论】:

  • 您说“任何模式匹配...”是指在一长串文本中吗?如果是这样,那么行锚的开头和结尾将取消任何匹配。此外,您没有用星号替换任何内容,这似乎是您的问题所暗示的(例如:将 123-45-6789 替换为 ***-**-6789

标签: php regex replace mask social


【解决方案1】:

有一个可能的问题:您可能没有匹配正确的字符串(如果您试图找到隐藏在一大块文本中的 SSN) - ^$ 锚点只会匹配字符串的开头(或者有时是行首)——如果这不是你想要的,而是你想在一个长字符串中找到 SSN,你需要摆脱那些锚。

另一个问题可能是您似乎想用星号替换事物,但您没有在替换表达式中包含星号。你需要使用像

这样的替换表达式
`***-**\4`

【讨论】:

  • 就是这样。很多其他答案也提到了这一点,但我不知道用什么代替 ^ 和 $。只需删除它们即可解决问题。谢谢!
  • \4 代表什么?谢谢
  • 在这种情况下,\4 是表示正则表达式匹配的 SSN 的第二个破折号和最后四位数字的文本。 \1, \2 ... \9 被称为“反向引用”。它指的是 - 并表示 - 匹配的正则表达式的某些部分。 从技术上讲,它取决于特定反向引用中确切包含的内容的实现,例如 \4 但是,大多数情况下它是第四 (4) 组括号的内容() 在匹配表达式中。
【解决方案2】:

试试这个正则表达式:

(\d{3})(-)(\d{2})(-\d{4})

【讨论】:

  • 我把它作为我的第二个参数,但它仍然没有改变我的字符串中的任何内容。 Sein Brights 的建议也是如此。我将发布我的确切代码作为更新。
【解决方案3】:

试试这个:

preg_replace('/^\d{3}-\d{2}(-\d{4})$/','***-**$1',$myText);

【讨论】:

    【解决方案4】:
    1. 你的模式中有 ^ 和 $,但我没有看到 m 修饰符,所以这个 仅当 ###-##-#### 是整个字符串时才会匹配。
    2. [\d] 可以是 缩短为 \d
    3. 你的 \2\4 将离开 --####,如果你想要 *-#### 你可以简单地拥有 *\4

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-30
      • 2016-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多