字符串;
RandomValue1:|RandomSentence1.|RandomValue2:|RandomSentence2.|
我尝试匹配RandomSentence1.
和RandomSentence2.
。我认为"。"在句子中可以用来帮助匹配,因为每个句子都以句号结束。所以,如果我在比赛中没有这段时间。我没关系。我从来都不擅长RegEx,但我总是愿意去学习。通过这里的结果,我无法想出任何有效的方法。我是用PHP编写的。我相信preg_match()或preg_split()都是这里的用法。
.*:\|.*\.\|
但是它只匹配整个字符串,因为它以.|
结束。
然后我尝试了这个; .*:\|\s*(.*?)\s*\|
但这只匹配RandomSentence2.
这些是我在网上找到的改编。
答案 0 :(得分:1)
这应该适用于正则表达式捕获所有。找不到.
或|
,然后是.
和|
:
preg_match_all('/([^.|]+\.)\|/', $string, $matches);
print_r($matches[1]);
如果您想对其他条目执行某些操作,则可以进行拆分,然后找到您想要的内容。在|
上拆分然后grep查找以.
结尾的数组值:
$matches = preg_grep('/\.$/', explode('|', $string));
答案 1 :(得分:1)
由于你已经知道最后有一个点,你可以匹配所有的
简单的(?<=\|)[^|.]+(?=\.\|)
https://regex101.com/r/ZsHcWq/1
(?<= \| )
[^|.]+
(?= \.\| )