<span class="a">《我来了》</span>
<span class="a">太阳很热</span>
<span class="a">我去上班</span>

如何匹配出:
我来了
太阳很热
我去上班

不能带有书名号,正则只可以使用一次小括号“()”

弄了好久没出来,各大论坛求教了个遍,最终找人卜卦后发现希望在这里。
求高手赐一正则-LMLPHP
大佬们一定知道我这是要干嘛~

吉林网友: 匹配中文? ?? 我都不想回。。。

广东网友:"只可以使用一次小括号"  无解。
坐等神仙打脸
广西网友:多谢捧场

台湾网友:<span class="a">《?(.+?)》?</span>
青海网友:这个试过,不行,
湖南网友:你这个用不着正则
strip_tags
str_replace
江苏网友:我好像懂你的意思了,你的意思是全匹配,那就是(?<=<span class="a">《?)[^<《》]+,但我感觉你走弯路了
山西网友:他的意思应该不能捕获分组,要求直接全局搜索到,(?<=<span class="a">《?)[^<《》]+应该是这个意思
江苏网友:

  1. <span class="a">[《]*([^<]+)[》]*</span>

复制代码

湖南网友:

  1. <span class="a">[《]*([^<]+)[》]*</span>

复制代码

山西网友:嗯,大神理解的对,就是这个意思
福建网友:他那是小说采集规则,你这样没法填采集器里面
安徽网友:丢到数据库里手工清理一下
贵州网友:>《*(.+?)》*<
贵州网友:<span class="a">[《]{0,1}(.*?)[》]{0,1}</span>
云南网友:
测试了所有结果, 只有这位大佬的, 可能是楼主需要的.
求高手赐一正则-LMLPHP

测试地址: https://regexr.com/
湖南网友:谢谢各位大佬,就不一一道谢了,最终从通过各位大佬的答案我弄了一个php版本的

  1. $s = ‘<span class="a">《我来了》</span><span class="a">太阳很热</span><span class="a">我去上班</span>’;
  2. $r = ‘/<span class="a">[《]*(.*?)[》]*<\//iS’;
  3. preg_match_all($r, $s, $m);
  4. echo ‘<pre>’;print_r($m);
  5. /*
  6. <pre>Array
  7. (
  8.     [0] => Array
  9.         (
  10.             [0] => <span class="a">《我来了》</
  11.             [1] => <span class="a">太阳很热</
  12.             [2] => <span class="a">我去上班</
  13.         )
  14.     [1] => Array
  15.         (
  16.             [0] => 我来了
  17.             [1] => 太阳很热
  18.             [2] => 我去上班
  19.         )
  20. )
  21. */

复制代码

01-20 09:11