RegEx - 提取前缀为@或#的单词

时间:2012-04-11 09:16:28

标签: php regex

如果我有一个字符串

This is a @really nice#day.

第一次传递时,我应该得到输出/结果字reallyday(结果不应包含点或任何其他标点符号,也不应该只是匹配AZ,az和其他一切都忽略,因为字符串可以包含国际字符,所以请记住这一点。

第二次传递时,除了那两个单词和标点符号外,我应该把所有内容都拿出去。

This is a nice

RegEx通过PHP完成。

编辑: @hochl ([@#]\w+)的问题在于它不会捕获šđžćč等国际字符,因此#dayš仅被识别为#day

1 个答案:

答案 0 :(得分:2)

要捕捉国际字符,您可以使用以下内容:

[@#]\p{L}+

您需要使用unicode修饰符/u才能在php中使用。

注意:

  • \p{L}告诉它匹配unicode“letters”
  • 您不需要将整个事物包裹在括号()中,因为整个匹配始终是第一组