在括号内提取文本的最佳方法 - PHP解析

时间:2017-05-31 19:07:45

标签: php string parsing

从字符串中获取文本的最佳方法是什么。我在数据库中有一个LONGTEXT字段,目前是:

<ul>
 <li>Winner on Laps #153 LemonAid Racing (1996 Geo Metro, Davenport Iowa)</li>
 <li>Winner on Index of Effluency #42 J CrewD (1985 Jagaur XJ6, Knoxville Tn)     </li>
 <li>Winner, Class A (The Good) #153 LemonAid Racing (1996 Geo Metro, Davenport Iowa)</li>
 <li>Winner, Class B (The Bad) #128 Duff Beer (1994 Honda Civic, Raleigh NC and Atlanta GA)</li>
 <li>Winner, Class C (The Ugly) #64 Team Fairlylame (1964 Ford Fairlane, Savannah GA)</li>
 <li>Organizer's Choice #54 Knoxvegas Lowballers (1998 Ford Contour SVT, Knoxville TN)</li>
 <li>Most Heroic Fix #40 Mock Grass Racing (1998 Kia Sephia, Columbia SC)</li>
 <li>Judges' Choice #85 Apocalyptic Racing (1978 Toylet Celica, St Louis mo)     </li>
 <li>Judges' Choice #2 #17 Fireball Racing (1991 Ford Escort, Aurora IL)</li>
</ul>

1说我想从整个字符串(括号内的文字)中获取字符串“1996 Geo Metro,Davenport Iowa”,“1985 Jagaur XJ6,Knoxville Tn”......等等。什么是最好的这样做的方法?

  1. 说我想把'li'中的所有文字都带到符号“#”,这可能吗?
  2. 提前致谢

2 个答案:

答案 0 :(得分:3)

您可以尝试使用Regular Expressions

例如,要查找(括号内的文字),您可以使用以下正则表达式:

/(?<=\()([^\)]+)(?=\))/

并获取&#39; li&#39;中的所有文字直到符号&#34;#&#34; 您可以使用:

/(?<=<li>).*(?=#)/

Perform a regular expression match on PHP

Awesome regex resource!

答案 1 :(得分:0)

使用preg_match_all

  1. preg_match_all('/\(([^\)]+)\)/', $content, $matches);
  2. preg_match_all('/^[\s]*\<li\>([^#]+)#/m', $content, $matches);
  3. $matches[1]将包含您捕获的文字。