如何在点分符号字符串子集上进行正则表达式匹配

时间:2019-07-03 22:18:43

标签: c# regex

我想匹配多点符号表达式 但如果它们在原处,则忽略它们:

- inside a particular string like 'consts'
- inside a comment
- inside a quoted string

所以我不想匹配这3行上的任何内容

a.b.consts.d.e
comment line 'a.b.c.d
quote line "a.b.c.d"

但是要匹配这三行的一部分

asdf a.b.c.d
a.b c.d .e c.d.e
long a.b.c.d.e.f.g

我尝试了一些前瞻性/落后/否定性想法,但均取得了部分成功,但没有一次能够满足所有条件。

请在此处查看一个正则表达式尝试,该尝试将上述描述文本用作与之匹配的实际文本: https://regex101.com/r/dSinUs/6

2 个答案:

答案 0 :(得分:1)

这可以帮助您,虽然有点复杂,但是可以完成工作

^\b((?!\.\w{2,}\.)[^"'])+(\s*\w{1}\s*\.)+\w$

https://regex101.com/r/dSinUs/7

答案 1 :(得分:0)

在许多情况下,由于[a-z.\s]*,该表达式可能会失败,但是对于我们如何开始解决这个复杂的问题,它可能提供了不同的观点,但是我不确定这是期望的还是不期望的:

^(?!(.*["'])|(.*[a-z]\.consts\.[a-z].*))[a-z.\s]*$

Demo