在php中处理迁移类 如果我有这样的字符串:
create_users_roles_table
我希望正确地得到第一个和最后一个单词之间的单词,如果中间只有一个单词,那么能够正确理解单词:
create_users_table
我该怎么做?
我做完了:
(\B)_([a-zA-Z]+)_?([a-zA-Z]+)_table
当我执行 create_users_roles_table 时,它可以正常工作
并产生用户和角色
但是当只执行 create_users_table 时,它会生成用户和 s 。
显然我需要它只生成用户。
任何?
答案 0 :(得分:0)
我认为应该阅读
(\B)_([a-zA-Z]+)_?([a-zA-Z]+)?_table
但如果中间有三个单词,这将无效。我建议剥离这些单词,然后将它们分开,因为我不认为正则表达式可以处理可变数量的捕获组。
如果你能确定可以有多少单词,你可以随时对其进行硬编码。对于树或更少的单词,您可以使用
(\B)_([a-zA-Z]+)(?:_([a-zA-Z]+))?(?:_([a-zA-Z]+))?_table