0

我只需要将这些字符串的开头与“KEYWORD AAA/0010/0”中的主要模式匹配,并在/0之后使用空格并将其替换为任何其他字符串。它必须只发生在开始的实例上。

KEYWORD AAA/0010/0 
KEYWORD AAAAAA/0010/0
KEYWORD AAA/001000/0
KEYWORD AAA/0010/000
KEYWORD AAA/0010/0 Testing comment
KEYWORD AAA/0010/0 Testing comment KEYWORD AAA/0010/0 Testing comment
KEYWORD */*/*
KEYWORD ?/?/?

我已经尝试过了,但它不区分开始和中间的实例,并且与最后一个不匹配

^KEYWORD .*\/.*\/.*\s

任何帮助将不胜感激。

4

3 回答 3

1

Ungreedy.*?的(匹配直到下一个/,甚至是[^/]*),以及可选\s的 with \s?(最后一行),使得^KEYWORD .*?\/.*?\/.*?\s?^KEYWORD [^\/]*\/[^\/]*\/[^\/]*\s?

于 2012-12-12T15:25:34.600 回答
1

我想你快到了。您的正则表达式与您的最后一个测试用例不匹配,因为末尾没有空格。试试这个:

/^KEYWORD .*\/.*\/.*(\s|$)/
于 2012-12-12T15:25:34.917 回答
1

关于什么

^KEYWORD [^\s/]*\/[^\s/]*\/[^\s/]*(?:\s|$)

在 Regexr 上查看

最后一行不匹配,因为后面没有空格,因此我将其替换为 Whitespace 或字符串的结尾(?:\s|$)

于 2012-12-12T15:26:02.390 回答