使用regex或php解析字符串

使用regex或php解析字符串,php,regex,string,notepad++,Php,Regex,String,Notepad++,简单地说,我试图在不接触周围文本的情况下用包装好的xhtml标记查找并替换文本。理想情况下,我打算在Notepad++中使用正则表达式,但没有使用正则表达式的经验,只有有限的PHP经验 例如: Year: 2007 Registration: XYZS23 Transmission: Auto Stock Number: AZ1234 Kilometres: 1280 Colour: Blue Features: includes cruise control. 对于解析的

简单地说,我试图在不接触周围文本的情况下用包装好的xhtml标记查找并替换文本。理想情况下,我打算在Notepad++中使用正则表达式,但没有使用正则表达式的经验,只有有限的PHP经验

例如:

Year: 2007    Registration: XYZS23
Transmission: Auto    Stock Number: AZ1234
Kilometres: 1280    Colour: Blue
Features: 
includes cruise control.
对于解析的文本,它将如下所示:

<strong>Year:</strong> 2007    <strong>Registration:</strong> XYZS23
<strong>Transmission:</strong> Auto    <strong>Stock Number:</strong> AZ1234
<strong>Kilometres:</strong> 1280    <strong>Colour:</strong> Blue
<strong>Features:</strong>
includes cruise control.
年份:2007注册:XYZS23
传输:自动库存编号:AZ1234
公里数:1280颜色:蓝色
功能:
包括巡航控制。

因此,如果您有任何建议,我们将不胜感激。

因此-您必须搜索以下内容:

<whitespace> <any non-null number of alphanumerical characters> : <whitespace>
当使用preg\u replace(PHP中的正则表达式)时,它将如下所示:

$parsed = preg_replace("/([A-Z]+:)/", "<strong>$0</strong>", $original);
$parsed=preg_replace(“/([A-Z]+:)/”,“$0”,$original);

您可以搜索
[^\s{2,}]+:
并替换为
$0
\0
,具体取决于编辑器

在这里,它是在TextMate

试试这个:

search : ([a-zA-Z]+ *[a-zA-Z]*:)
replace: <strong>\1</strong>
search:([a-zA-Z]+*[a-zA-Z]*:)
替换:\1

很抱歉,这让人很痛苦,但有没有办法在记事本++中做到这一点?我曾尝试使用不带引号的正则表达式,但它进行了文字替换:即,将每个查找替换为与“股票编号”字段不匹配的$0。你需要用记事本+/[^\s{2,}]+:/in NotePad++并替换为$0,我相信。不幸的是,这不起作用,比尔,对不起,我需要在哪里使用\0 Tim?对不起,你需要在搜索字段中执行
[^\s{2,}]+:
,在替换字段中执行$0。这只是我处理正则表达式时的一个习惯。别担心,bill,肯定很接近了,但不幸的是,我一定是做错了什么,因为它找到了要替换的正确文本,但它随后将每个实例替换为$0我正在令人讨厌的Windows Vista下使用Notepad++unicode,如果有帮助的话?但是当我使用上面的代码时,它不幸地替换为文本(不带引号)“$0”您是否尝试过\0?我周围没有窗户可以测试。是的。。。不幸的是,它做了同样的事情,并进行了文字替换。i、 e.“\0”如果不起作用,它可能与整个字段不匹配,即$0。您可以尝试([^\s{2,}]+:)并替换为$1\1。将正则表达式放在括号中,并使用
\1
作为替换项在记事本++中对我有效。