Php 正则表达式-从固定模式中排除符号
我需要正则表达式专家的帮助 我有一个脚本,它给出了一个固定的模式列表。使用非常简单的正则表达式,我搜索目标文本中的模式存在。例如:Php 正则表达式-从固定模式中排除符号,php,regex,Php,Regex,我需要正则表达式专家的帮助 我有一个脚本,它给出了一个固定的模式列表。使用非常简单的正则表达式,我搜索目标文本中的模式存在。例如: /.*TFT.*/ /.*LCD.*/ /.*ANTI-GLARE.*/ 那些字符串-TFT,LCD,防眩光是固定的-我不能修改它们。好吧,问题是在防眩光-该破折号将导致不匹配的防眩光。我知道我是这样做的: /.*ANTI-?GLARE.*/ 这将匹配两个变体,但我无法修改该字符串。我的问题是: 除了模式中的感叹号,还有其他方法使符号可选吗 编辑-清除 在给出一
/.*TFT.*/
/.*LCD.*/
/.*ANTI-GLARE.*/
那些字符串-TFT,LCD,防眩光是固定的-我不能修改它们。好吧,问题是在防眩光-该破折号将导致不匹配的防眩光。我知道我是这样做的:
/.*ANTI-?GLARE.*/
这将匹配两个变体,但我无法修改该字符串。我的问题是:
除了模式中的感叹号,还有其他方法使符号可选吗
编辑-清除
在给出一些答案和提示之后,我将尝试对我的问题进行更具体的描述。
我在表中有一个字符串:
防眩光
TFT
AntiGlare
LCD
通过XML,我收到了新模型,其描述如下:
防眩光
我需要确保——我是否有类似“防眩光”描述的条目。我无法更改接收到的防眩光,因为有很多字符串-范围很广-不可能在正则表达式中构建逻辑组或类似的任何字符串。它是使用php脚本构建的,如:
$rexp="/.*~.*/i";
- 其中~替换为该字符串 $rexp=str_replace(“~”,$rexp,$cond)
- 其中$cond保存当前接收的字符串 操作员可以更改~之外的任何部分,但不能更改~内容中的任何部分-将有数千个
- 好吧,你不能修改那些正则表达式,但我想你可以修改文本。所以,你可以这样做
使用带有不区分大小写标志的正则表达式
/antiglare/
,然后将其替换为防眩光
。我希望这对你有用。我不能给你代码,因为我自己不懂php 嗯,你不能修改那些正则表达式,但我想你可以修改文本。所以,你可以这样做
使用带有不区分大小写标志的正则表达式
/antiglare/
,然后将其替换为防眩光
。我希望这对你有用。我不能给你代码,因为我自己不懂php 嗯,你不能修改那些正则表达式,但我想你可以修改文本。所以,你可以这样做
使用带有不区分大小写标志的正则表达式
/antiglare/
,然后将其替换为防眩光
。我希望这对你有用。我不能给你代码,因为我自己不懂php 嗯,你不能修改那些正则表达式,但我想你可以修改文本。所以,你可以这样做
使用带有不区分大小写标志的正则表达式
/antiglare/
,然后将其替换为防眩光
。我希望这对你有用。我不能给你代码,因为我自己不懂php 您使用的是php,因此我们可以假设您得到了一个类似数组的东西,每个字符串都被接受
如果dash打扰了你,这里有一种方法可以做你想做的事:
<?php
$words = array('TFT', 'LCD', 'ANTI-GLARE');
$pattern = '/(' . str_replace('-', '-?', implode($words, '|')) . ')/i';
?>
这将生成模式
/(TFT | LCD | AntiGlare | AntiGlare | AntiGlare | AntiGlare | AntiGlare | AntiGlare)/i
您使用的是php,因此我们可以假设您有一个类似数组的东西,每个字符串都被接受
如果dash打扰了你,这里有一种方法可以做你想做的事:
<?php
$words = array('TFT', 'LCD', 'ANTI-GLARE');
$pattern = '/(' . str_replace('-', '-?', implode($words, '|')) . ')/i';
?>
这将生成模式
/(TFT | LCD | AntiGlare | AntiGlare | AntiGlare | AntiGlare | AntiGlare | AntiGlare)/i
您使用的是php,因此我们可以假设您有一个类似数组的东西,每个字符串都被接受
如果dash打扰了你,这里有一种方法可以做你想做的事:
<?php
$words = array('TFT', 'LCD', 'ANTI-GLARE');
$pattern = '/(' . str_replace('-', '-?', implode($words, '|')) . ')/i';
?>
这将生成模式
/(TFT | LCD | AntiGlare | AntiGlare | AntiGlare | AntiGlare | AntiGlare | AntiGlare)/i
您使用的是php,因此我们可以假设您有一个类似数组的东西,每个字符串都被接受
如果dash打扰了你,这里有一种方法可以做你想做的事:
<?php
$words = array('TFT', 'LCD', 'ANTI-GLARE');
$pattern = '/(' . str_replace('-', '-?', implode($words, '|')) . ')/i';
?>
这将生成模式
/(TFT | LCD | AntiGlare | Anti-Glare | Anti-Glare | Anti-Glare)/i
字符后面的问号是要走的路。此外,删除这些*
,它们是无用的,实际上会导致您的正则表达式变慢。您可以使用正则表达式或/(Anti-Glare)|(AntiGlare)/但这也涉及到修改正则表达式。小心,正则表达式是区分大小写的,防眩光
永远不会匹配防眩光
在我的解释中,所有字符串-模式和目标总是大写-只是为了清除。当然,我使用“i”开关字符后面的问号是正确的方法。此外,删除这些*
,它们是无用的,实际上会导致正则表达式变慢。您可以使用正则表达式或/(防眩光)|(防眩光)/但这也涉及修改正则表达式。小心,正则表达式是区分大小写的,防眩光
永远不会匹配防眩光
在我的解释中,所有字符串-模式和目标总是大写-只是为了清除。当然,我使用“i”开关字符后面的问号是正确的方法。此外,删除这些*
,它们是无用的,实际上会导致正则表达式变慢。您可以使用正则表达式或/(防眩光)|(防眩光)/但这也涉及修改正则表达式。小心,正则表达式是区分大小写的,防眩光
永远不会匹配防眩光
在我的解释中,所有字符串-模式和目标总是大写-只是为了清除。当然,我使用“i”开关字符后面的问号是正确的方法。此外,删除这些*
,它们是无用的,实际上会导致正则表达式变慢。您可以使用正则表达式或/(防眩光)|(防眩光)/但这也涉及修改正则表达式。小心,正则表达式是区分大小写的,防眩光
永远不会匹配防眩光
在我的解释中,所有字符串-模式和目标总是大写-只是为了清除。当然,我用“我”这个词谢谢。不幸的是,这将是解决方案,只有当模式列表是固定的。但这些模式是动态的——它们是通过XML到达的,我不知道——今天我将使用防眩光。例如,明天可以是全尺寸。谢谢。不幸的是,这将是解决方案,只有当模式列表是固定的。但这些模式是动态的-