正则表达式模式匹配数字仅在字母表之前

时间:2018-04-09 12:33:13

标签: regex regex-negation regex-group

我正在尝试设置一个正则表达式,但遇到同样的问题。

文字:

1)
1.2.3.4 - USER [01/Mar/2015:10:05:16 +0200] SSLv1.0 ABCDE-FGH-IJK128-LMN111 POST /abc/def/ghi/jklmn/opqrs/t1 HTTP/1.1 200 99 12345 http://somehost.somedomain.com:1234 balancer://abc_def_ghi_http_port_1234
2)
1.2.3.4 - USER [01/Mar/2015:10:05:16 +0200] SSLv1.0 ABCDE-FGH-IJK128-LMN111 POST /abc/def/ghi/jklmn/opqrs/12531631913/wqeqeqer HTTP/1.1 200 99 12345 http://somehost.somedomain.com:1234 balancer://abc_def_ghi_http_port_1234

正则表达式:

(?:\/[^]\s\/(){},~:;=@#%&_\-]*)+

网址:https://regex101.com/r/qc9BOX/1/

目前,上述案例的匹配是:

1)
/Mar/2015
/abc/def/ghi/jklmn/opqrs/t1
/1.1
//somehost.somedomain.com
//abc

2)
/Mar/2015
/abc/def/ghi/jklmn/opqrs/12531631913/wqeqeqer
/1.1
//somehost.somedomain.com
//abc

我得到的数据几乎是准确的,但在正则表达式的第1和第2场比赛中,/Mar/2015/abc/def/ghi/jklmn/opqrs/12531631913/wqeqeqer 我不希望数字匹配。 这意味着,我的正则表达式只能找到 / Mar / 而不是 2015 。它应该匹配 / abc / def / ghi / jklmn / opqrs / wqeqeqer ,但不能匹配 12531631913

1 个答案:

答案 0 :(得分:-1)

试试这个

(\/)([a-zA-Z\/]+)(\1)