duanpo1498 2010-01-06 23:01
浏览 49
已采纳

独自一人,正则表达式的一部分。 如果在它之前添加了一个零件,在它之后添加了另一个零件,它将停止工

UPDATE: I'm making progress, but this is hard!

The test text will be valid[REGEX_EMAIL|REGEX_PASSWORD|REGEX_TEST].

(The real life text is required|valid[REGEX_EMAIL]|confirmed[emailconfirmation]|correct[not in|emailconfirmation|email confirmation].)

([^|]+) saves REGEX_EMAIL, REGEX_PASSWORD and REGEX_TEST in an array.

^[^[]+\[ matches valid[

\] matches ]

^[^[]+\[ + ([^|]+) + \] doesn't save REGEX_EMAIL, REGEX_PASSWORD and REGEX_TEST in an array.

How to solve?

  • 写回答

1条回答 默认 最新

  • dsf6281 2010-01-06 23:14
    关注

    Why is it important to try to everything with a single regular expression? It becomes much easier if you extract the two parts first and then split the strings on | using explode:

    $s = 'valid[REGEX_EMAIL|REGEX_PASSWORD|REGEX_TEST]';
    $matches = array();
    $s = preg_match('/^([^[]++)\[([^]]++)\]$/', $s, $matches);
    $left = explode('|', $matches[1]);
    $right = explode('|', $matches[2]);
    print_r($left);
    print_r($right);
    

    Output:

    Array
    (
        [0] => valid
    )
    Array
    (
        [0] => REGEX_EMAIL
        [1] => REGEX_PASSWORD
        [2] => REGEX_TEST
    )
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘