字符串中每个点号3的正则表达式

时间:2014-09-20 21:01:39

标签: php regex

我谈到的字符串如下所示:

xxxxx.xxxxxx.xxx.yyyyyyy.yyyyyy.yyyyyyyy.zzzz

其中x,y和z不是“。”。 (点)即字母数字,特殊字符,空格,换行等。

我试过了:

(\w|\d|\s){1,}.\.{3,}

2 个答案:

答案 0 :(得分:2)

使用:

(?:[^.]+\.){3}

这会将{3}量词应用于整个群组,而不仅仅是每个群组末尾的.。由于您希望完全匹配3组,我使用{3}; {3,}表示3个或更多组。

它使用更简单的[^.]来匹配除.之外的所有内容(它不需要在括号内转义点,因为它没有任何特殊含义)。

要在preg_replace中使用此替换每个第三个点,您需要匹配之前捕获组中该点的所有内容。然后,您可以使用$1将其复制到替换字符串。

preg_replace('/((?:[^.]+\.){2}[^.]+)\./', '$1<br/>', $string);

答案 1 :(得分:1)

在角色前面使用^来匹配除此角色之外的所有内容

 ([^\.]+\.){3,}