.net 包含数字的词

.net 包含数字的词,.net,regex,.net,Regex,我如何识别一个带有正则表达式的单词,其中可能包含数字。 所以我想捕捉“string1”,“12inches”,“log4net”。但不是2011年11月12日或18日? 不幸的是\b[\p{L}\d\p{M}]+\b也抓住了数字。这: Regex regexObj = new Regex(@"\b(?=\S*[a-z])\w+\b", RegexOptions.IgnoreCase); Match matchResults = regexObj.Match(subjectStri

我如何识别一个带有正则表达式的单词,其中可能包含数字。 所以我想捕捉“string1”,“12inches”,“log4net”。但不是2011年11月12日或18日? 不幸的是
\b[\p{L}\d\p{M}]+\b也抓住了数字。

这:

    Regex regexObj = new Regex(@"\b(?=\S*[a-z])\w+\b", RegexOptions.IgnoreCase);
    Match matchResults = regexObj.Match(subjectString);
    while (matchResults.Success) {
        // matched text: matchResults.Value
        // match start: matchResults.Index
        // match length: matchResults.Length
        matchResults = matchResults.NextMatch();
    } 
我想到了

"
\b          # Assert position at a word boundary
(?=         # Assert that the regex below can be matched, starting at this position (positive lookahead)
   \S          # Match a single character that is a “non-whitespace character”
      *           # Between zero and unlimited times, as many times as possible, giving back as needed (greedy)
   [a-z]       # Match a single character in the range between “a” and “z”
)
\w          # Match a single character that is a “word character” (letters, digits, etc.)
   +           # Between one and unlimited times, as many times as possible, giving back as needed (greedy)
\b          # Assert position at a word boundary
"

你想让一个单词同时包含字母和数字吗?这应该有效:
\b(\w++\d++\d++\w+[\w\d]+\b

谢谢。事实上,我有一个更难的问题:我需要通过空格或连字符识别短语,并具有以下功能:(?@Nickolodeon我认为你应该相应地编辑你的问题,因为我的回答回答了这个问题。请发布一些适当的输入/输出示例,以便我们可以提供帮助。好吧,对不起,我想我想简化这个问题,所以只问了一部分。我需要1)机器人世界3=>Robocop3。2)你好2=>Hello23)你好世界=>Helloworld。如果相邻单词中没有数字或日期,则删除空格或连字符btwn单词。看起来这对发布的问题有效。非常感谢。@Nickolodeon我一到家就会设法解决你的另一个问题。我现在在路上;)