GVKun编程网logo

php – 正则表达式:如何指定捕获的组应该包含一个特定的单词(正则表达式捕获分组)

7

如果您对php–正则表达式:如何指定捕获的组应该包含一个特定的单词和正则表达式捕获分组感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解php–正则表达式:如何指定捕获的组应该包含一个特定的单词的

如果您对php – 正则表达式:如何指定捕获的组应该包含一个特定的单词正则表达式捕获分组感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解php – 正则表达式:如何指定捕获的组应该包含一个特定的单词的各种细节,并对正则表达式捕获分组进行深入的分析,此外还有关于.net – 不包含多个特定单词的字符串的正则表达式、bash正则表达式用一些后缀而不是一个特定的、php – 检查字符串是否包含任何指定的单词并删除它们、php – 正则表达式帮助:如何匹配包含“或”运算符的正则表达式中的任一模式?的实用技巧。

本文目录一览:

php – 正则表达式:如何指定捕获的组应该包含一个特定的单词(正则表达式捕获分组)

php – 正则表达式:如何指定捕获的组应该包含一个特定的单词(正则表达式捕获分组)

问题:如何匹配具有ID属性的锚标签?

我的字符串

<a href="something" id="someid" />
<a href="something" />

预期产量:

<a href="something" />
<a href="something" />

我需要删除锚标签中的id属性.

我到目前为止尝试过:

<a(.*?)>  //how to specify `id` should be in the captured group

注意:我没有使用DOM解析器,因为它保存为HTML.

解决方法

检查一下: https://regex101.com/r/cN9nR3/3

表达式:< a [^]] *(id =“[a-z] *”).*>应该这样做.

.net – 不包含多个特定单词的字符串的正则表达式

.net – 不包含多个特定单词的字符串的正则表达式

我正在组合一个正则表达式来查找字符串中不存在特定单词。具体来说,我想知道什么时候“trunk”,“tags”或“branches”不存在(这是一个Subversion预提交钩子)。基于 Regular expression to match string not containing a word的答案,我可以轻松地使用负面的环顾一个字:
^((?!trunk).)*$

这是我和挣扎中的“和”运算符,我似乎无法得到包括其他两个词在内的组合。

这在.NET中运行正常,只需一个字:

var exp = new Regex(@"^((?!trunk).)*$");
exp.IsMatch("trunk/blah/blah");

如果第二行中的路径中不存在“trunk”,它将返回false,否则为true。

我在这里缺少什么?

使用负值为 look-ahead,表示输入中没有任何三个单词:
^(?!.*(trunk|tags|branches)).*$

我也稍微重新排列正则表达式来纠正轻微错误。

bash正则表达式用一些后缀而不是一个特定的

bash正则表达式用一些后缀而不是一个特定的

我需要(不区分大小写)一个单词的几个变体的所有匹配 – 除了一个 – 包括未知数.

我想要

accept
acceptance
acceptable
accepting

……但不是“接受”.当他指的是“例外”时,同事使用它.很多.

由于我无法预测变化(或错别字),我需要允许诸如“acceptjunk”和“acceptMacarena”之类的东西

我认为我可以通过消极的前瞻来实现这一目标,但这并没有给出我需要的结果

grep -iE '(?!acception)(accept[a-zA-Z]*)[[:space:]]' file

诀窍是我可以接受(har)包含“acception”的行,前提是其他单词匹配.例如,这条线可以匹配:

The acceptance of the inevitable is the acception.

…否则到现在我已经通过grep -v管道grep并完成了它:

grep -iE '(accept)[a-zA-Z]*[[:space:]]' | grep -vi 'acception'

我发现some questions that are similar和许多并不是这样.在grep -i中使用a-zA-Z可能是不必要的,但我正在fla.我可能错过了一些小的或基本的东西……但我仍然想念它.它是什么?

谢谢阅读.

PS:我没有和grep结婚 – 但我在bash中操作 – 所以如果有一个神奇的awk命令可以做到这一点,我就是所有的耳朵(眼睛).

PPS:忘了提及在https://regex101.com/上面的前瞻似乎工作,但它没有我的完整grep命令.

解决方法

要使用外观,您需要具有PCRE的GNU grep

grep -iP '(?!acception)(accept[a-z]*)[[:space:]]'

使用awk,这可能会起作用

awk '{ip=$0; sub(/acception/,""); if(/accept[a-zA-Z]*[[:space:]]/) print ip}'

> ip = $0保存输入行> sub(/ acception /,“”)删除不需要的单词,可以添加其他不需要的单词> if(/ accept [a-zA-Z] * [[:space:]] /)print ip然后打印该行,如果它仍包含被搜索的单词

php – 检查字符串是否包含任何指定的单词并删除它们

php – 检查字符串是否包含任何指定的单词并删除它们

我有一个变量,我正在尝试检查它是否包含一组特定的单词.如果它包含任何这些单词,则应删除它们.

我试过的代码是:

$title = 'Help my title';    
$array = array("help","test","trying");
    if(0 < count(array_intersect(explode(' ', strtolower($title)), $array))){
      $titlenew = str_replace($array, "", $title);
    }

我的期望是上面会回来:

my title

如果它也可能不区分大小写,那就太好了 – 虽然这不是我的首要任务.

谢谢

解决方法:

你需要str_ireplace()

$title = 'Help my title';    
$array = array("help","test","trying");
echo str_ireplace($array, '', $title); // my title

php – 正则表达式帮助:如何匹配包含“或”运算符的正则表达式中的任一模式?

php – 正则表达式帮助:如何匹配包含“或”运算符的正则表达式中的任一模式?

我正在使用PHP的preg_replace().

基本上我有两种可能的字符串匹配:

>你好真实世界
>问候

这是我想要完成的事情:

>你好< / span>真实世界
>格力< / span> tings

规则解释:如果字符串包含空格,请插入< / span>在第一个空格字符之后.如果字符串不包含空格(单词),请插入< / span>在字符串的中间(/ – 如果奇数字符计数).

到目前为止,我已经提出了一个长期工作的解决方案:

<?PHP 
$str = "Hello Real World";
echo preg_match("/ /",$str) ? preg_replace("/ /"," </span>",$str,1) : preg_replace("/.{" . round(strlen($str)/2) . "}/","$0</span>",1);
?>

但是,我相信只需要一个preg_replace()调用就可以实现更短更优雅的正则表达式.

任何想法如何只使用单个preg_replace()调用?例如.:

preg_replace("/ |.{" . round(strlen($str)/2) . "}/",1)

解决方法

如果字符串中有空格,则正则表达式引擎不会提前知道.尽管您确实需要多个函数,但您根本不需要使用正则表达式来执行此操作:

$pos = strpos($str,' ');
if ($pos === false) {
   //No space found
   $pos = intval(strlen($str) / 2);
}
else {
   //we want to insert *after* the space
   $pos++;
}
$str = substr_replace($str,'</span>',$pos,0);

今天关于php – 正则表达式:如何指定捕获的组应该包含一个特定的单词正则表达式捕获分组的介绍到此结束,谢谢您的阅读,有关.net – 不包含多个特定单词的字符串的正则表达式、bash正则表达式用一些后缀而不是一个特定的、php – 检查字符串是否包含任何指定的单词并删除它们、php – 正则表达式帮助:如何匹配包含“或”运算符的正则表达式中的任一模式?等更多相关知识的信息可以在本站进行查询。

本文标签: