PHP正则表达式解析{string} \ {string}形式的字符串

时间:2013-07-20 19:31:23

标签: php regex

根据标题,我需要解析string_1\string_2形式的字符串,如字符串后跟反斜杠,然后解析另一个符合以下要求的字符串:

  • 如果存在string_1和string_2,请将它们分成两个令牌:string_1\string_2
  • 如果只存在string_1,则将其返回
  • 如果\string_2存在,但反斜杠后面没有任何内容,则不匹配任何内容。

到目前为止,我已经想出了这个:

^([\w\s]*)((?!\\\).*)

但是string_1中的最后一个字符在反斜杠之前保持“泄漏”并转到string_2。

有没有办法解决这个问题?或任何其他替代正则表达式? 以下正则表达式确实有助于泄漏,但它打破了第三个要求。

^([\w\s]*).((?!\\\).*)

为了确保这个问题不是太局部化,请注意,如果在\section{section title comes here {*}}之前有一个字符串,这可以帮助解析一部分乳胶。

1 个答案:

答案 0 :(得分:2)

我认为这是你正在寻找的正则表达式:

/^([^\\]+)(\\.+)?/

第一组是至少1个字符的“非\”,后跟可选的“\”和其他任何字符。