1

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

假设您必须匹配一个以 http- 开头的单词,或者什么都不匹配

例如:http-test-data, test-data 应该是匹配的,但 xyz-test-data 不应该是匹配的

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

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

但它也匹配 xyz-test-data。

4

3 回答 3

2

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

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

这会测试http-字符串的正向后视或 before 的开头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
于 2013-04-17T06:52:49.633 回答
1

Try this representation

^(http-|)(test-data)
于 2013-04-17T06:46:48.770 回答
0

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

于 2013-04-17T06:39:01.690 回答