查找正则表达式

Find Regular Expression

我已经创建了一个正则表达式来从一个段落中找到特定的模式(示例{ 008-150A-003E,9C1-E10-010 等...)但是它失败了,因为它无法根据段落的长度获取我的值图案。 这是我写的正则表达式:

[A-z0-9]{3,4}[\S][A-z0-9]{3,4}[\S][A-z0-9]{3,4}

为了测试,我使用了下面给出的这一段:

****Test Paragraph******


PCB ASSLY (9C1-E10-010)
PLEASE ARRANGE QUOTATION FOR THE ABOVE ITEAM AT THE EARLIEST 9C1 E10.010

008-150A-003E  
Form BHUVANESWARI COTSPIN INDIA P LTD
asdfghjklpo
***************

我只想从上面的测试段落中找到模式 9C1-E10-010、008-150A-003E 等...。 PS:表达式也可以是 theis 形式,即;9C1 E10.010,我在测试段落中也包含了这个

重点是您使用 \S 任何非空格来匹配连字符。使用 -[^\w\s](匹配任何标点符号),或普通的 \W(匹配任何非单词字符)。另外,将 A-z 替换为 A-Za-z 作为 [A-z] matches more than just letters。此外,要对 start/end 实施长度限制,您需要(至少)字边界。

使用

\b[A-Za-z0-9]{3,4}\W[A-Za-z0-9]{3,4}\W[A-Za-z0-9]{3,4}\b

regex demo