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

时间:2011-11-02 14:08:46

标签: regex

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

XYaaaYXYaaaYXYaaaYX
YaaaYXYaaaYXYaaaYX
XYaaaYXYaaaYXYaaaY
YaaaYXYaaaYXYaaaY

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

最终,我试图拉出YaaaY但如果以分隔符或行开头/结尾为界。例如,正则表达式应匹配XYaaaYX和YaaaYX,但不匹配XYaaaYaaaX。相当容易,除了我无法找出线路末端的相应“或”条件。

这对于匹配分隔符边界的情况(regex = XYa*YX)是微不足道的,但我无法弄清楚如何进行X OR开头。像[^|X]Ya*Y[X|$]这样的东西似乎很接近,但是不起作用,因为括号弄乱了线锚。

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

1 个答案:

答案 0 :(得分:4)

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

/(^|X)Ya*Y(X|$)/