.net 正则表达式仅匹配整个单词
我有以下示例文本.net 正则表达式仅匹配整个单词,.net,regex,.net,Regex,我有以下示例文本 "dont pick descri@ption but pick @description only" 哪个正则表达式将选择@description并省略descri@ption 我尝试了以下方法 (?=\s)@\w+(?=\w)-->不选择其中任何一个 (?=\S)@\w+(?=\w)-->同时选择这两个选项 (?=\W)@\W+(?=\W)-->对您尝试的模式同时进行选择 第一个模式不匹配,因为(?=\s)断言直接在右边的是空白字符。但是下一个匹配的是@,因此断言是错误
"dont pick descri@ption but pick @description only"
哪个正则表达式将选择@description
并省略descri@ption
我尝试了以下方法
(?=\s)@\w+(?=\w)
-->不选择其中任何一个
(?=\S)@\w+(?=\w)
-->同时选择这两个选项
(?=\W)@\W+(?=\W)
-->对您尝试的模式同时进行选择
- 第一个模式不匹配,因为
断言直接在右边的是空白字符。但是下一个匹配的是(?=\s)
,因此断言是错误的@
- 第二个和第三个模式匹配,因为断言
和(?=\S)
对于(?=\W)
符号都是真的。然后这部分@
将匹配1+个单词字符,并确保最后有一个非单词字符,两者都匹配@\w+?(?=\w)
@
或空白字符
(?<!\S)@[^@\s]+(?!\S)
(?
如果要匹配单词字符,请执行以下操作:
(?<!\S)@\w+(?!\S)
(?试试:
“@”的前面必须是字符串的开头或空格。然后它后面必须是一个或多个既不是空格也不是“@”的字符。最后字符串后面必须是空格或字符串的结尾。试试(?不是(?@ggorlen)区别在于正向查找(?啊,是的,这些例子很有帮助。谢谢。@ggorlen在我刚刚更新的上一篇评论中看到了2个例子。这与中的“@description”匹配@description@abc’你的意思是吗?最初的问题并不是说边界是什么。
(?:(\A|\s))(@[^@\s]+)(?=(\Z|\s))