English 中文(简体)
Regex 捕获提及
原标题:regex catching mentions
  • 时间:2012-05-24 16:13:45
  •  标签:
  • php
  • regex

之前我需要把所有提到的内容都比对得上RT。 我试着加了! 我试着去抹掉它,但是不工作。

preg_match(  /!rts*@([a-zA-Z0-9_]{1,20})/i , $string, $data );

this must match: hello @user how are you .
this not: RT @user how are you

我不是要提取用户名或其它东西, 我需要知道文本是否有@user 没有 RT 。

有什么想法吗?

最佳回答

! 在 Regex 中没有“ negate” 。 这符合字面上 ! 。 您想要的是“ 隐性外观 ” 。

/(?<!RT)s@([a-z0-9]{1,20})/i

(? <! RT) 指“ RT” 之前的“ RT” 。

这将匹配用户名, “ RT” 不包括为匹配 。

$match = preg_match( /(?<!RT)s@([a-z0-9]{1,20})/i , $string);

如果 $match 0 , 意思是字符串是 "RT@user..."。如果 $match 不是 0 , 意思是字符串是 not 开头是 "RT@user" 。

DEMO: < a href="http://ideone.com/bOWbu" rel= "no follow" >http://ideone.com/bOWbu

关于regex 外观的更多信息: < a href="http://www. perman- expressions.info/lookoury.html" rel=“nofollows” >http://www.permanization-specialations.info/lookover.html

问题回答

如果您想要匹配用户名, 您可以尝试 / (? <!! RT > @. *? (? =s) /i

我认为这应该做到:

$string1 =  hello @user how are you ;
preg_match( ~s?(?<!RT) @[a-z0-9]+~i , $string1, $data);
print_r($data);
// array( 0  =>  @user );

$string2 =  RT @user how are you ;
preg_match( ~s?(?<!RT) @[a-zA-Z0-9]+~ , $string2, $data);
print_r($data);
// empty array




相关问题
Brute-force/DoS prevention in PHP [closed]

I am trying to write a script to prevent brute-force login attempts in a website I m building. The logic goes something like this: User sends login information. Check if username and password is ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

定值美元

如何确认来自正确来源的数字。

Generating a drop down list of timezones with PHP

Most sites need some way to show the dates on the site in the users preferred timezone. Below are two lists that I found and then one method using the built in PHP DateTime class in PHP 5. I need ...

Text as watermarking in PHP

I want to create text as a watermark for an image. the water mark should have the following properties front: Impact color: white opacity: 31% Font style: regular, bold Bevel and Emboss size: 30 ...

How does php cast boolean variables?

How does php cast boolean variables? I was trying to save a boolean value to an array: $result["Users"]["is_login"] = true; but when I use debug the is_login value is blank. and when I do ...

热门标签