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
Regex 正则表达式将最后一个空格后的所有内容与最多2或5个字符的单词匹配_Regex - Fatal编程技术网

Regex 正则表达式将最后一个空格后的所有内容与最多2或5个字符的单词匹配

Regex 正则表达式将最后一个空格后的所有内容与最多2或5个字符的单词匹配,regex,Regex,首先,它需要匹配字符串的最后一个空格 “这是一个测试NL”,代码(.*\s)我得到了单词NL “这是一个测试NL-NL”,代码(.*\s)我得到了单词NL-NL 但是 “这是一个测试NL搜索”,代码(.*\s)我得到了单词Search这是错误的。它不应该返回任何东西 最后一个单词my有2或5个字符(带有特殊字符-或/)。这是反编码,但不起作用 (.*\s)(\w{2}|\w-/{5}) 如果您想使用一个和另一个选项捕获值(或使其不捕获(?:),或者使用|匹配2个单词字符或匹配列出的其中一个字符

首先,它需要匹配字符串的最后一个空格

“这是一个测试NL”,代码
(.*\s)
我得到了单词
NL

“这是一个测试NL-NL”,代码
(.*\s)
我得到了单词
NL-NL

但是

“这是一个测试NL搜索”,代码
(.*\s)
我得到了单词
Search
这是错误的。它不应该返回任何东西

最后一个单词my有2或5个字符(带有特殊字符
-
/
)。这是反编码,但不起作用

(.*\s)(\w{2}|\w-/{5})

如果您想使用一个和另一个选项捕获值(或使其不捕获
(?:
),或者使用
|
匹配2个单词字符或匹配列出的其中一个字符的5倍),则可以使用捕获组

^.*\s(\w{2}|[\w/-]{5})$

请注意,
\s
也可以匹配换行符


如果
/
-
不能连续出现两次,而不是在开始或结束时,并且必须至少出现一次:

^.*\s(\w{2}|(?=[\w/-]{5}$)\w+(?:[/-]\w+)+)$


或者将字符串的第二部分设置为可选

^.*\s([a-zA-Z]{2}(?:[/-][a-zA-Z]{2})?)$

您可能正在寻找类似
(?
^..*\s(?=(?:\w{2}|[\w\/-]{5})$)|+
?显示您如何使用正则表达式。@ftftft32模式与该字符串不匹配您如何使用该模式?