下面是我目前的代码
我将用正则表达式替换*
以便我进行搜索,
Regex.Match(value, @"([a-zA-Z0-9\s_.,!""'/$\-]+)");
我想确保正则表达式只匹配一个单词,而不是整个句子。
Keyword: recomm*
Text: recommend on a solution
Result: matched
Keyword: recommend*
Text: recommend on a solution
Result: matched
Keyword: re*om*end
Text: recommend on a solution
Result: matched
Keyword: recommend*on
Text: recommend on a solution
Result: not matched
但是我的正则表达式与前3个示例一起工作正常,但不是第四个。 有谁知道如何解决问题?
答案 0 :(得分:2)
我将从字符类中删除\s
并使用*
分隔符:
([a-zA-Z0-9_.,!""'/$\-]*)
你可以简化:
([\w.,!""'/$-]*)
答案 1 :(得分:1)
您应该删除\s
,因为它与空格相匹配。所以,只需删除它,你就可以了! = d
实际上,如果您将单词视为由空格分隔的单词,则可以使用:
(\S+)
匹配任何不是空格的东西。
或者您可以自己指定字符集:
([^ \t\r\n]+)