繁体   English   中英

正则表达式使所有给定单词旁边的单词

[英]Regex to get the word next to all of the given words

我需要一个正则表达式来立即捕获我提供的所有单词旁边的单词。

例句:

user =“ panda”试图访问resource =“ system”

要捕获的单词:熊猫和系统(即,紧跟在“用户”和“资源”一词旁边的单词)

当前,我使用此正则表达式(?<=name=\\")(.*?)(?=\\";) ,返回名称“ panda”。 我正在寻找一个可以捕获上述句子中的用户和资源的查询。

有人可以帮助进行正则表达式查询吗?

只是一个带有延迟匹配的简单正则表达式就可以完成这项工作

user="(.*?)".*resource="(.*?)"

如果您需要以任何顺序匹配两个以上的单词,它将变得更加复杂,在这种情况下,我根本不会使用RegEx,您宁愿为此创建一个词法分析器。 只需创建一个将首先标记该句子的类/过程,然后解析器即可获取您想要的信息

由于.NET的正则表达式支持非固定长度的Lookbehinds,因此您只需在非捕获组中添加所需的所有单词并使用替换即可:

(?<=(?:user|resource)=\").*?(?=\")

演示

您也可以使用以下方法来消除前瞻性:

(?<=(?:user|resource)=\")[^"]*

演示#2

暂无
暂无

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

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