用于匹配字符或行锚的正则表达式

Gad*_*s34 2 regex

我正在尝试编写一个正则表达式来匹配包含在文本限定符中的分隔文件中的条目。如果 X 是字段分隔符,Y 是限定符,a 是条目,则输入字符串的预期形式包括:

XYaaaYXYaaaYXYaaaYX
YaaaYXYaaaYXYaaaYX
XYaaaYXYaaaYXYaaaY
YaaaYXYaaaYXYaaaY
Run Code Online (Sandbox Code Playgroud)

即行的开头和结尾可能有也可能没有字段分隔符。

最终,我试图拔出YaaaY但如果任何一个分隔符或行开始/结束接壤。例如,正则表达式应该在 XYaaaYX 和 YaaaYX 上匹配,但在 XYaaaYaaaYX 上不匹配。相当简单,只是我无法找出行端的适当“或”条件。

这对于匹配定界符边界的情况(regex = XYa*YX)来说是微不足道的 ,但我不知道如何做 X OR 行首。事情[^|X]Ya*Y[X|$]看起来很接近但不起作用,因为括号弄乱了线锚。

搜索了我能找到的所有讨论 - 我发现的任何内容都无法回答这个问题。有谁知道如何做到这一点?谢谢!

a'r*_*a'r 5

尝试使用分组而不是字符类,例如。

/(^|X)Ya*Y(X|$)/
Run Code Online (Sandbox Code Playgroud)