Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式匹配除以数字开头的字符串以外的所有内容_Regex - Fatal编程技术网

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

Regex 正则表达式匹配除以数字开头的字符串以外的所有内容,regex,Regex,嗨,这是我的第一个问题,我对regex很陌生,希望有人能帮我 我的样本数据如下: 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)。我提

嗨,这是我的第一个问题,我对regex很陌生,希望有人能帮我

我的样本数据如下:

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的开头字母应该匹配,数字之间的破折号(-)不应该匹配

谢谢你的帮助

您可以尝试以下方法:

/\b[^\d-\s][\w-]+\b/i
其中:
\b
-单词的开头和结尾
[^\d-\s]
-匹配除数字、破折号和空格外的任何字符
[\w-]+
-将字符从a到z、从0到9和_匹配(不区分大小写)


您可以检查此正则表达式

我将使用此模式:

(?<=^|\s)[^0-9].*?(?=$|\s)
(?您可以执行以下操作:

/\b([a-zA-Z]\w+)/

如果要匹配诸如
a33-45
之类的单词,则需要更改为:

/\b([a-zA-Z][\w\d-]+)/


只需将您认为可以接受的“word”字符添加到第二个字符类,
[\w\d-]
中,并将其添加到第一个字符类,
[a-zA-Z]
您认为什么是可以接受的单词开头字符。

关于
10Pcs
?请解释您想要实现的确切输出以及您使用的工具/编程语言。下面的答案可能适用于您,也可能不适用于您,这取决于正则表达式的风格和底层代码。可能这是最好的!)@TimBiegeleisen:Easy fix:
/\b([a-zA-Z][\w\d-]+)/
@TimBiegeleisen是的,谢谢!我已经更新了我的答案。根据我的样本数据,提供的所有答案实际上都是正确的,但我有一个庞大的数据列表,我正在处理(我说的是数千个),蒂姆的答案是最接近的。我只是需要稍微调整一下。非常感谢你的回答!