我正在努力为以下字符串找到正确的语法:
^Lorem/ipsum dolor sit/amet consectetur adipiscing/elit
在这里,我想在第一个^
之后的/
和/
和之间提取第一个单词。即:Lorem
和ipsum
。
此外,如果我想在第二个/
之后提取单词,如何更改语法?这将是amet
。
答案 0 :(得分:1)
分为两部分:
首先,您希望在^
之后和/
之前匹配所有内容:
/\^([^\/]*)/
\^
字面匹配字符^
([^\/]*)
[^\/]
匹配下面列表中不存在的单个字符*
在零和无限次之间,尽可能多次,根据需要回馈[贪婪] \/
匹配字符/字面其次,您希望在/
之后匹配每个单词:
/\/([^\s\/]*)/g
\/
字面匹配字符/
([^\s\/]*)
[^\s\/]
匹配下面列表中不存在的单个字符*
在零和无限次之间,尽可能多次,根据需要回馈[贪婪] \s
匹配任何空格字符[\r\n\t\f ]
\/
字面匹配字符/
g
修饰符:全局。所有比赛(首场比赛时不返回)代码(PHP):
$str = "^Lorem/ipsum dolor sit/amet consectetur adipiscing/elit";
// Part one:
preg_match("/\\^([^\\/]*)/", $str, $matches);
$matches[1] == 'Lorem'; // True
// Part two:
preg_match_all("/\\/([^\\s\\/]*)/", $str, $matches);
$matches[1] == 'ipsum';
$matches[2] == 'amet';
$matches[3] == 'elit';
来自精彩工具regex101的代码和解释。
答案 1 :(得分:0)