Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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 正则表达式(组)-word验证_Regex - Fatal编程技术网

Regex 正则表达式(组)-word验证

Regex 正则表达式(组)-word验证,regex,Regex,我请求您提供以下不符合所有模式的表达式的帮助,我构建的表达式如下: 模式:^(\w{1,}\w?\w{1,})\s([\w].*)s([\d.?]{1,})\s([\d.?]{1,})\s([\d.?]{1,})$ 第一组:1G701−2LF00 第2组:燃油泵总成 第3组:6 第4组:102.40 第5组:614.40 线路: 预期: 可能会有更多的字符或-模式的这部分\w{1,}\w{1,}匹配一个或多个单词字符,一个可选的非单词字符,然后再匹配一个或多个单词字符。可能不是有意的,但请注

我请求您提供以下不符合所有模式的表达式的帮助,我构建的表达式如下:
模式:
^(\w{1,}\w?\w{1,})\s([\w].*)s([\d.?]{1,})\s([\d.?]{1,})\s([\d.?]{1,})$

  • 第一组:1G701−2LF00
  • 第2组:燃油泵总成
  • 第3组:6
  • 第4组:102.40
  • 第5组:614.40
线路:

预期:


可能会有更多的字符或
-

模式的这部分
\w{1,}\w{1,}
匹配一个或多个单词字符,一个可选的非单词字符,然后再匹配一个或多个单词字符。可能不是有意的,但请注意,
\W
是可选的,至少应有2个单词字符

在最后一个示例中,string
SLIFT−16405−01H
有2个连字符,但图案不匹配
−01H
,因为后跟单词字符的
\W
不会重复,只会匹配一次


在示例数据中,第一部分仅包含
-
,如果这是唯一的非单词字符,
\W
是广泛匹配。您可以改为匹配
-
或使用
[^\w\s]

^(\w+(?:[^\w\s]\w+)*)\s(\w.*?)\s(\d+(?:\.\d+)?)\s(\d+(?:\.\d+)?)\s(\d+(?:\.\d+)?)$
要匹配示例数据中的所有行,请执行以下操作:

^(\w+(?:−\w+)*)\s(\w.*?)\s([\d.?]+)\s([\d.?]+)\s([\d.?]+)$
  • ^
    字符串的开头
  • (\w+(?):−\w+*)\s
    捕获1个以上的单词字符,并可以选择重复一个
    -
    再重复一次1个以上的单词字符
  • (\w.*)\s
    捕获一个单词字符,后跟尽可能少的字符(非贪婪字符),直到第一个空格字符
  • ([\d.?]+)\s
    捕获一个数字的1+倍,
    并匹配空白字符
  • ([\d.?]+)\s
    与前面相同
  • ([\d.?]+)
    与前面相同,没有空格字符
  • $
    字符串结尾

或者使用
[^\w\s]

^(\w+(?:[^\w\s]\w+)*)\s(\w.*?)\s(\d+(?:\.\d+)?)\s(\d+(?:\.\d+)?)\s(\d+(?:\.\d+)?)$

模式的这一部分匹配1个或多个单词字符,一个可选的非单词字符,然后再匹配1个或多个单词字符。可能不是有意的,但请注意,
\W
是可选的,至少应有2个单词字符

在最后一个示例中,string
SLIFT−16405−01H
有2个连字符,但图案不匹配
−01H
,因为后跟单词字符的
\W
不会重复,只会匹配一次


在示例数据中,第一部分仅包含
-
,如果这是唯一的非单词字符,
\W
是广泛匹配。您可以改为匹配
-
或使用
[^\w\s]

^(\w+(?:[^\w\s]\w+)*)\s(\w.*?)\s(\d+(?:\.\d+)?)\s(\d+(?:\.\d+)?)\s(\d+(?:\.\d+)?)$
要匹配示例数据中的所有行,请执行以下操作:

^(\w+(?:−\w+)*)\s(\w.*?)\s([\d.?]+)\s([\d.?]+)\s([\d.?]+)$
  • ^
    字符串的开头
  • (\w+(?):−\w+*)\s
    捕获1个以上的单词字符,并可以选择重复一个
    -
    再重复一次1个以上的单词字符
  • (\w.*)\s
    捕获一个单词字符,后跟尽可能少的字符(非贪婪字符),直到第一个空格字符
  • ([\d.?]+)\s
    捕获一个数字的1+倍,
    并匹配空白字符
  • ([\d.?]+)\s
    与前面相同
  • ([\d.?]+)
    与前面相同,没有空格字符
  • $
    字符串结尾

或者使用
[^\w\s]

^(\w+(?:[^\w\s]\w+)*)\s(\w.*?)\s(\d+(?:\.\d+)?)\s(\d+(?:\.\d+)?)\s(\d+(?:\.\d+)?)$