首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于匹配除以数字开头的字符串以外的所有内容的正则表达式。

用于匹配除以数字开头的字符串以外的所有内容的正则表达式。
EN

Stack Overflow用户
提问于 2018-09-28 03:32:17
回答 3查看 68关注 0票数 4

嗨,这是我的第一个问题,我是个新手,希望有人能帮忙。

我的样本数据如下:

代码语言:javascript
复制
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-16毫米)我想出了上面的正则表达式,但不幸的是,这不是我想要的正确的输出。CD3在开始时应该匹配字母,而数字之间的破折号(-)不应该匹配。

感谢你的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-09-28 03:47:26

我会使用这样的模式:

代码语言:javascript
复制
(?<=^|\s)[^0-9].*?(?=$|\s)

我不使用单词边界,而是使用查找符。这些查找断言,如果一个单词的结尾是空格或输入的开始,那么所得到的是空格或输入的结尾。这样做的原因是,对于诸如\b这样的术语,使用a10-333可能会失败。

演示

票数 3
EN

Stack Overflow用户

发布于 2018-09-28 03:44:35

你可以试试这个:

代码语言:javascript
复制
/\b[^\d-\s][\w-]+\b/i

其中:

\b -单词的开头和结尾

[^\d-\s] -匹配除数字、破折号和空格以外的任何字符。

[\w-]+ -匹配字符从a到z,从0到9和_(不区分大小写)

您可以检查这个regex 这里

票数 1
EN

Stack Overflow用户

发布于 2018-09-28 03:47:32

你可以:

代码语言:javascript
复制
/\b([a-zA-Z]\w+)/

演示

如果您想要匹配诸如a33-45这样的单词,则需要更改为:

代码语言:javascript
复制
/\b([a-zA-Z][\w\d-]+)/

演示2

只需添加到第二个字符类,[\w\d-]您认为是一个可接受的‘单词’字符,并添加到第一个字符类,[a-zA-Z]什么是您认为是一个可接受的字开始字符。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52547888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档