在正则表达式中指定字符串开头的模式

时间:2014-03-26 23:08:59

标签: regex pcre

我有一些包含多个可能值的字符串:

e
(space)Exact
Exact
exact
phase

我想只得到前四个值,我想出的正则表达式是:

^\s*e

它意味着在字符串的开头它有0个或更多的空格,后跟e(或E,不区分大小写),但它总是过滤掉案例

(space)Exact

我的猜测是^而不是字符串的开头。我怎么能纠正这个?我使用Perl兼容正则表达式(PCRE)作为匹配引擎。

2 个答案:

答案 0 :(得分:1)

尝试使用正则表达式中的模式修饰符在换行符处打开^ $ match;并且,如果必要,也不区分大小写

(?mi)^\s*e

答案 1 :(得分:0)

^字符仅表示字符串的开头。新行的开头不算作字符串的开头。所以如果不止一个人在同一个"字符串"宾语。不确定pcre是如何工作的,但如果你想能够匹配一条线的乞讨,你也必须启用多线标志。

编辑:如果您想要获取新行的开头,请转到此路线:\r\n在表达式的开头,然后删除" ^"

编辑#2(因为我觉得要做正则表达式):这是你正在寻找的东西:

(\b)[eE]+\w*