提取括号内文本的最佳方法-PHP解析
从字符串中获取文本的最佳方式是什么。我在数据库中有一个长文本字段,目前为:提取括号内文本的最佳方法-PHP解析,php,string,parsing,Php,String,Parsing,从字符串中获取文本的最佳方式是什么。我在数据库中有一个长文本字段,目前为: <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>
<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>
- 洛杉矶153柠檬水赛车赛冠军(1996年,爱荷华达文波特Geo Metro)
- 废水指数获奖者#42 J CrewD(1985年贾高尔XJ6,田纳西州诺克斯维尔)
- 优胜者,A级(好)#153柠檬水赛跑(1996年爱荷华州达文波特Geo Metro)
- 优胜者,B级(坏)#128达夫啤酒(1994年本田思域、北卡罗来纳州罗利和佐治亚州亚特兰大)
- 优胜者,C级(丑陋)#64队Fairlylame(1964年,佐治亚州萨凡纳市福特费尔兰)
- 组织者的选择#54诺克斯维加斯Lowballers(1998福特Contour SVT,田纳西州诺克斯维尔)
- 最英勇的Fix#40模拟草地赛(1998年起亚赛菲亚,哥伦比亚特区)
- 法官的选择#85启示录赛车(1978年托伊莱·塞利卡,密苏里州圣路易斯)
- 法官的选择#2#17火球赛(1991年福特护卫队,伊利诺伊州奥罗拉)
我说我想得到字符串“1996年爱荷华州达文波特Geo Metro”,“1985年田纳西州诺克斯维尔Jagaur XJ6”。。等从整个字符串(括号内的文本)中删除。最好的方法是什么
/(?<=\()([^\)]+)(?=\))/
/(?您可以尝试使用
例如,要查找(括号内的文本),可以使用以下正则表达式:
/(?<=\()([^\)]+)(?=\))/
/(?使用
preg\u match\u all('/\([^\]+)\)/',$content,$matches);
preg\u match\u all('/^[\s]*\([^\]+)\\/m',$content$matches);
$matches[1]
将包含捕获的文本。使用
preg\u match\u all('/\([^\]+)\)/',$content,$matches)代码>
preg\u match\u all('/^[\s]*\([^\]+)\\/m',$content,$matches)代码>
$matches[1]
将包含捕获的文本。尝试使用regex
进行此操作。使用preg\u match\u all
尝试使用regex
进行此操作。使用preg\u match\u all
为什么要逃避
?你不应该在
之后开始吗?去试试这些吧!非常感谢。没问题。如果这个答案有助于你解决问题,请将其标记为已接受。祝你好运!:)@KenRyanhi@rafascar我怎么能从“圈赛冠军”#153柠檬汁赛车(1996年爱荷华州达文波特Geo Metro)中获得“车队名称”呢?基本上,我想从这一部分获得“柠檬汁赛车”。是否是第一个数字之后“(”)之前的字符串?再次感谢您的帮助!要仅获取括号之间的文本,例如,要获取与(1996 Geo Metro,Davenport Iowa)相同的模式,您可以尝试以下正则表达式:(?你为什么要逃避#
?你不应该在
之后开始吗?尝试一下!谢谢!没问题。如果这个答案帮助你解决了问题,请将其标记为已被接受。祝你好运!:)@KenRyanhi@rafascar我如何从“圈上的赢家”#153柠檬水赛车(1996年爱荷华州达文波特Geo Metro)中获得“车队名称”基本上,我想从这一部分中得到“柠檬水赛跑”。它是第一个数字之后“(”)之前的字符串吗?再次感谢您的帮助!要仅获取括号之间的文本,它们的模式与(1996 Geo Metro,Davenport Iowa)相同,例如,您可以尝试以下正则表达式:(?无需将\s
放入[…]
。你确定吗?试着用我的正则表达式来捕获而不使用它。:-)我为什么要这样做,它完全一样。嗯,不,不是真的。详细地说,你不能仅仅看问题就知道,但实际上每行的开头和
标记之间都有空格。尝试过了。它是一样的。不需要在[…]中放置\s
。]
。你确定吗?尝试使用我的正则表达式来捕获,但不使用它。:-)我为什么要这样做,它完全一样。嗯,不,不是真的。详细地说,你不能只看问题就知道,但实际上在每行的开头和
标记之间都有空格。尝试过了。它是一样的。