如何使用正则表达式从字符串中查找字母数字单词

本文关键字:数字 单词 查找 何使用 正则表达式 字符串 | 更新日期: 2023-09-27 18:34:01

获得整个订单20%的折扣和免费送货(仅限首次客户)!在结账时NEW20VISION输入优惠券代码。限时优惠。

我正在从数据库获得这种类型的字符串。我必须找出字符串中是否有任何字母数字单词。如果它包含任何字母数字单词。我已经强调了这一点。就像上面的情况一样,它是:NEW20VISION<</p>

如何使用正则表达式从字符串中查找字母数字单词

div class="answers">

使用以下正则表达式 /[a-zA-Z0-9]/

或检查链接:http://www.dreamincode.net/code/snippet5818.htm

Raphaël Althaus 是对的,但我认为最好为它添加一些被动组以避免获得无用的匹配

用于测试的字符串:

Get 20% Off Your Entire Order & FREE Shipping (first55 time55 custo55mers only)! Enter coudf45pon code NEW20VISION at checkout. Limited time offer.

Raphaël Althaus的正则表达式:

'b[a-zA-Z'd]*(([a-zA-Z]+'d+)|('d+[a-zA-Z+]))[a-zA-Z'd]*'b

我的正则表达式:

'b[a-zA-Z'd]*(?:(?:[a-zA-Z]+'d+)|(?:'d+[a-zA-Z+]))[a-zA-Z'd]*'b

Raphaël Althaus的正则表达式结果:

 ===next match===
Group[0]: first55
Group[1]: t55
Group[2]: t55
Group[3]: 
===next match===
Group[0]: time55
Group[1]: e55
Group[2]: e55
Group[3]: 
===next match===
Group[0]: custo55mers
Group[1]: 5m
Group[2]: 
Group[3]: 5m
===next match===
Group[0]: coudf45pon
Group[1]: 5p
Group[2]: 
Group[3]: 5p
===next match===
Group[0]: NEW20VISION
Group[1]: 0V
Group[2]: 
Group[3]: 0V

我的正则表达式的结果:

 ===next match===
    Group[0]: first55
    ===next match===
    Group[0]: time55
    ===next match===
    Group[0]: custo55mers
    ===next match===
    Group[0]: coudf45pon
    ===next match===
    Group[0]: NEW20VISION

,我认为有点混乱,因为你搜索alphaAND数字单词("20","20ab","test"被认为是字母数字)。

这个应该可以工作(可以简化,我很确定...

使用 Regex.Rereplace 进行测试,NEW20VISION 超出了您的字符串。

 var regex = @"'b[a-zA-Z'd]*(([a-zA-Z]+'d+)|('d+[a-zA-Z+]))[a-zA-Z'd]*'b";
 var text = "Get 20% Off Your Entire Order & FREE Shipping (first time customers only)! Enter coupon code NEW20VISION at checkout. Limited time offer.";
 var text2 = "20 test 1020test test2010, test10 20";

 var t2 = Regex.Replace(text, regex, string.Empty); 
 var t3 = Regex.Replace(text2, regex, string.Empty);

这个怎么样:

Regex regexObj = new Regex(@"'w*(?:'d'p{L}|'p{L}'d)'w*");

这匹配至少包含一个数字后跟字母的字母数字单词,反之亦然。

唯一的"疣"是'w也与下划线匹配。如果你不想这样,它会变得更丑一点:

Regex regexObj = new Regex(@"['d'p{L}]*(?:'d'p{L}|'p{L}'d)['d'p{L}]*");