繁体   English   中英

正则表达式可选匹配

[英]Regex Optional Matches

我正在尝试使用PHP中的preg_match函数来匹配两种类型的字符串,如下所示。

  • '_mything_to_newthing'
  • '_一样东西'
  • '_mything_to_newthing_and_some_stuff'

在上面的第三篇中,我只想要“神话”和“新事物”,因此在第三部分之后的所有内容只是用户可以添加的一些可选文本。 在上述情况下,理想情况下是不使用正则表达式的;

  • “神话”,“新事物”
  • '一样东西'
  • “神话”,“新事物”

如果可能,这些模式应匹配a-zA-Z0-9 :-)

我的正则表达式很糟糕,因此不胜感激!

提前致谢。

假设您正在谈论_分隔文字:

$regex = '/^_([a-zA-Z0-9]+)(|_to_([a-zA-Z0-9]+).*)$/';

$string = '_mything_to_newthing_and_some_stuff';
preg_match($regex, $string, $match);
$match = array(
    0 => '_mything_to_newthing_and_some_stuff',
    1 => 'mything',
    2 => '_to_newthing_and_some_stuff',
    3 => 'newthing',
);

至于更多内容,请提供更多详细信息和更好的示例文本/输出

编辑:您总是可以只使用explode

$parts = explode('_', $string);
$parts = array(
    0 => '',
    1 => 'mything',
    2 => 'to',
    3 => 'newthing',
    4 => 'and',
    5 => 'some',
    6 => 'stuff',
);

只要格式一致,它就应该可以正常工作...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM