当前位置: 首页 > 知识库问答 >
问题:

用于"提及"的正则表达式

杨海
2023-03-14

我正在努力想出一个正则表达式,它只能在单词的开头找到符号。例如:

这里:这只狗去了公园。

但不是这里:d@og我去公园了

或者这里:The@dog去了公园。

本质上,我只想捕捉正常的“提及”行为,而忽略奇怪的边缘情况。我觉得这已经足够普遍了,因此必须有一些成熟的正则表达式。

编辑:

我试着用这个:

/(@\w+)/gi

但是,它抓住了我不希望获得的案例。


共有2个答案

鲍建业
2023-03-14

正则表达式应该是这样的:

^@[A-Za-z]+|.+ @[A-Za-z]+

这将在第一个单词的开头查找@,或在后面的单词的开头查找@

席兴平
2023-03-14

您可以使用以下正则表达式

/\B@\w+/g

\B在非单词边界处匹配,因此,它要求非单词(或字符串的开始)正好在@之前。

查看regex演示

var re = /\B@\w+/g; 
var str = 'The @dog went to the park.\nBut not here: The d@og went to the park.\nOr here: The@dog went to the park.';
var res = str.match(re);
document.body.innerHTML = "<pre>" + JSON.stringify(res, 0, 4) + "</pre>";
 类似资料:
  • 我有一个正则表达式来从完整命令中提取脚本名。它适用于大多数情况,但不适用于示例数据中的第一行。 抽样资料 输出应该是 正则表达式不适用于第一行 https://regex101.com/r/cFjn85/1

  • 问题内容: 我正在尝试提取锚标记()的属性。到目前为止,我有这个表达: 适用于像 和(单引号) 但不适用于不带引号的字符串: 如何修改我的正则表达式,使其与不带引号的属性一起使用?还是有更好的方法来做到这一点? 更新: 谢谢您到目前为止的所有好评和建议。 我没有提到一件事:很遗憾,我必须修补/修改不是由我编写的代码。而且没有时间/金钱从头开始重写这些东西。 问题答案: 如果你有一个像 此正则表达式

  • 昨天,我需要向正则表达式添加一个文件路径,创建一个如下所示的模式: 一开始正则表达式不匹配,因为包含几个正则表达式特定的符号,如 或 。作为快速修复,我将它们替换为 和 . 与 . 然而,我问自己,是否没有一种更可靠或更好的方法来清除正则表达式特定符号中的字符串。 Python 标准库中是否支持此类功能? 如果没有,您是否知道一个正则表达式来识别所有正则表达式并通过替代品清理它们?

  • 问题内容: 我有这小段代码 应该打印 但是它什么也没打印! 问题答案: 欢迎使用Java的错误命名方法…它尝试并匹配所有输入。不幸的是,其他语言也纷纷效仿:( 如果要查看正则表达式是否与输入文本匹配,请使用和匹配器的方法: 如果确实要查看输入是否仅包含小写字母,则可以使用,但需要匹配一个或多个字符:将a附加+到字符类中,如中所示。或使用和。

  • 本文向大家介绍正则表达式提取img的src,包括了正则表达式提取img的src的使用技巧和注意事项,需要的朋友参考一下 要匹配的字符串:<img src=image/ad1.gif width="128" height="36"/><img src='image/ad2.gif' width="128" height="36" /> 正则表达式:<img[\s]+src[\s]*=[\s]*(([

  • 考虑到这一点: 如何使用正则表达式模式提取: 这很好,但我不想硬编码标签,它们可以更改: