繁体   English   中英

正则表达式匹配仅包含字母的纯字符串以及可选的点字符作为匹配的开始

[英]Regex to match plain string with only alphabets as well as optional dot character as beginning of match

我有以下正则表达式:

[:?\.](.+)[\|]?

成功匹配如下字符串:

The data.mws auth token field is required| lalafa daga.lallala

要么

The data.mws auth token field is required

但我也希望它能匹配如下字符串:-

This is an error

如何使[:?\.]部分可选? 我试过[:?\.]? 问题是像The data.mws auth token field is required| lalafa daga.lallala这样的字符串 The data.mws auth token field is required| lalafa daga.lallala它也会匹配the data部分,我该如何解决这个问题。

您可以使用

/(?:^(?!.*[:?.])|(?<=[:?.]))(.+)\|?/

请参阅正则表达式演示

细节

  • (?:^(?.:*[?.?])|(:<=[?..])) - 字符串的开头没有跟: , ? . 在除换行字符以外的任何零个或多个字符之后,尽可能多,或紧接在: , ?之前的位置之后.
  • (.+) - 第 1 组:除换行符以外的任何零个或多个字符,尽可能多
  • \|? - 可选| 字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM