繁体   English   中英

尝试通过REGEX匹配文本

[英]Trying to match text via REGEX

第一次发布,并且需要一些正则表达式匹配的帮助,我正在尝试提出。

这是我的格式

|user|DOMAIN\user|

我正在尝试编写一个仅捕获用户名然后仅捕获域的正则表达式匹配项。

我的想法是首先匹配所有文本,然后创建(3)个组? 基于此,我将获得所需的信息。

有什么建议吗? 例子?

您正在寻找这样的正则表达式:

\|([^|]+)\|([^\]+)\\([^|]+)\|

您可以在此处查看其运行情况: http : //refiddle.com/2we4

使用非贪婪量词有助于提高可读性:

set data {|glenn|JACKMAN\glenn|}
regexp  {^\|(.*?)\|(.*?)\\} $data -> user domain
puts "$user:$domain"

输出

glenn:JACKMAN

如果您没有使用正则表达式匹配的约束,建议您在管道处分割字符串。 这样,您的第一个或第二个令牌(取决于给定语言在第一个管道之前如何处理空令牌)将成为用户。 现在,您可以从下一个标记的末尾删除[length(user)+ 1]子字符串。 这将为您提供DOMAIN。

请注意,这里的假设是user或DOMAIN不包含任何管道字符(|)。

这也是匹配用户名和域的另一个选项。

设置数据百分比{| glenn | JACKMAN \\ glenn |}

| glenn | JACKMAN \\ glenn |

%regexp {^ \\ |([[^ |] +)\\ |([^ \\] +)。*} $ data mab

1个

%放置“ --- a $ a ---- b $ b ----”

---格伦---- b杰克曼----

精确匹配的另一种方法。

%regexp {^ \\ |([[Az] +)\\ |((Az] +)\\。*} $ data mab

1个

%放置“匹配$ m --- a $ a ---- b $ b ----”

匹配| glenn | JACKMAN \\ glenn | --- glenn ---- b JACKMAN ----

暂无
暂无

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

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