php - 正则表达式保留/匹配以某个字符开头的任何单词

标签 php javascript regex

我只想保留以 # 或 @ 开头的字符串

  1. foobar @sushi - 芥末
  2. foobar #sushi - 辣根

因此,仅匹配 @susui 或删除其周围的文本。 PHP 或 JavaScript。

最佳答案

根据您如何定义“单词”,您可能想要

(?<=\s|^)[@#]\S+

(?<=\s|^)[@#]\w+

说明:

(?<=\s|^)  # Assert that the previous character is a space (or start of string)
[@#]       # Match @ or #
\S+        # Match one or more non-space characters
(or \w+)   # Match one or more alphanumeric characters.

所以,在 PHP 中:

preg_match_all('/(?<=\s|^)[@#]\S+/', $subject, $result, PREG_PATTERN_ORDER);

为您提供一个数组$result,其中包含字符串$subject中的所有匹配项。在 JavaScript 中,这不起作用,因为不支持lookbehinds(正则表达式开头的“Assert...”部分)。

关于php - 正则表达式保留/匹配以某个字符开头的任何单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11171305/

相关文章:

php - 为什么我的 Twitter oAuth 请求不起作用? | curl 、标题

javascript - Telegram API 使用 php 或 javascript 发送消息?

regex - 使用 sed/regex/bash 脚本修改版本字符串

sql - Couchbase N1QL-内联正则表达式捕获组替换?

Java + regex 如何检查这样的字符串 "LOAD_filesourceB-01012008_000058.dat"的类型和数字(最后 6 位数字)

php - PhpStorm 中 Xdebug 的条件断点

php - PDO,注入(inject)和节省服务器资源

javascript - 检查用户是否到达页面底部

javascript - 如何在 JavaScript 中将数组转换为字符串

javascript - 字体调整 HTML