我正在尝试使用一个PCRE来选择除了一行文本中的第一个数字字符串之外的所有内容。数字字符串可以是3、4或5位长,但总是一个接一个的字。下面是一些示例:
第11367条航空公司专家仁川机场转让业务专长印度尼西亚 第8364条未来投资韩国政府投资4万亿韩元科技信息和通信技术研发 第2151条战斗机采购洛克希德马丁艾博公司建议降低价格,f 35 s
我目前正在使用表达式\b(?=\w*[a-zA-Z])\w+\b。这将选择除数字以外的所有内容。这几乎是完美的,但正如您在上面第2和第3行中所看到的,有时数字发生在第一组之后。我希望选择除第二个单词之外的每个单词,或者忽略第一组数字,但包含其他数字,以便最终匹配的结果如下所示:
航空公司专家仁川机场转移业务专长印度尼西亚 文章未来投资韩国政府投资4万亿韩元科技信息技术研发 飞机采购洛克希德马丁公司提议降低价格f 35s
之所以这样做,是因为Drupal模块search404在其配置中包含一个PCRE字符串,该字符串选择您希望从搜索字符串中删除的所有内容。它还包括一个函数,用于使用搜索条件自动执行自定义搜索URL,并允许您构造URL。我希望构造URL,使其看起来像/node/number,它将自动将用户从旧的文章URL (上面的一行)发送到新的文章URL。
发布于 2015-10-01 03:38:32
更新
如果你确信数字排在第二位,那么就使用\K。
^\S+\s+|\G(?!^)\d+\K|\G(?!^).*$代之以empty string.See演示。
https://regex101.com/r/fX3mH8/3
原始员额
如果你确信数字排在第二位,那么就使用\K。
^\S+\s+\K\d+代之以empty string.See演示。
https://stackoverflow.com/questions/32878400
复制相似问题