[英]Regex to match everything except strings that starts with digits
嗨这是我的第一个问题,我对正则表达式很新,我希望有人可以提供帮助。
我的样本数据如下:
black PENS Assorted Bit Set 10Pcs
Hollow blocks 10-16mm Cd3
Hollow blocks 16-23mm Cd3
Hollow blocks 5-10mm Cd3
Hollow blocks To 1-5mm Cd3
\b[^\d]+\b
我试图想出一个匹配列表中所有内容的正则表达式,除了以数字开头的单词(例如10-16mm)。 我想出了上面的正则表达式,但不幸的是我想要的输出不正确。 CD3应该匹配,因为它开始字母,而数字之间的短划线( - )不应该。
感谢帮助!
我会用这种模式:
(?<=^|\s)[^0-9].*?(?=$|\s)
我不是使用单词边界,而是使用lookarounds。 这些外观断言如果前面的内容是空格或输入的开头,则单词结束,并且继续进行的是空格或输入的结尾。 这样做的原因是使用\\b
可能会失败,例如a10-333
。
你可以试试这个:
/\b[^\d-\s][\w-]+\b/i
哪里:
\\b
- 单词的开头和结尾
[^\\d-\\s]
- 匹配除数字,短划线和空格之外的任何字符
[\\w-]+
- 匹配从a到z的字符,从0到9和_(不区分大小写)
你可以在这里查看这个正则表达式
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.