正则表达式匹配特定的起始单词或没有

时间:2013-04-17 06:37:06

标签: regex

我正在努力为以下场景提出正确的正则表达式。

假设您必须匹配一个单词,不论是以http-还是

开头

例如:http-test-data,测试数据应该匹配,但xyz-test-data不应该匹配

到目前为止我出现的正则表达式是

(?: HTTP - )?(测试数据)

但它也匹配xyz-test-data。

3 个答案:

答案 0 :(得分:2)

您可以简单地使用以下内容:

(?:http-|^)(test-data)

这可以测试http-的正面观察或test-data之前字符串的开头。

例如,对于样本数据如下:

http-test-data
xyz-test-data
http-test-data
xyz-test-data
test-data
yes-yes-test-data
-test-data

它是:

http-test-data
http-test-data
test-data

答案 1 :(得分:1)

尝试此表示

^(http-|)(test-data)

答案 2 :(得分:0)

是的,因为?上有(?:http-)。然后正则表达式也将匹配包含test-data的任何字符串。