【问题标题】:Regex to match a listing正则表达式匹配列表
【发布时间】:2018-01-08 23:19:08
【问题描述】:

我正在尝试找到一个匹配列表模式的正则表达式,例如:

A. banana
B. potato
C. apple

1. banana
2. potato
3. apple

即使列表不以A or 1 开头,例如:

q. banana
r. potato
s. apple

我能得到一些帮助吗?

编辑:正则表达式应该只匹配带有字母数字字符的订单,例如,这不应该匹配:

$. banana
&. apple
//or
b. banana
a. apple

【问题讨论】:

  • 你应该更好地解释你的问题。物品是否应该遵循订单?如果是,什么规则决定了这个顺序?是:#. banana$. potato%. apple 也正确吗?
  • 我编辑了我的问题
  • 好的,但主要问题是正则表达式无法考虑订单(它不知道“a”在“b”之前或“2”在“3”之前. 有一些变通方法可以做到这一点(在字符串末尾连接一种字母并使用非常复杂且效率低下的模式),但没有可靠的解决方案。
  • 您所能做的就是使用更通用的模式,例如:/(?m)^([a-z0-9]+)\. .../i 并使用常规代码(不是正则表达式)检查项目是否连续。

标签: php regex pcre


【解决方案1】:

使用以下内容:\w+(\.|\))\s.*

这将匹配任何带有数字或字母组合后跟句点的行。这也将匹配使用) 分隔索引和项目的列表。以下将全部匹配:

a. banana
b. potato
c. apple
1) banana
2) potato
3) apple

【讨论】:

    猜你喜欢
    • 2015-03-26
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    • 2011-05-01
    相关资源
    最近更新 更多