相关疑难解决方法(0)

正则表达式匹配任何顺序包含两个名称的字符串

我需要正则表达式中的逻辑AND.

就像是

杰克和詹姆斯

同意以下字符串

  • '你好杰克在这里是詹姆斯 '

  • "你好詹姆斯在这里是杰克 "

regex string

149
推荐指数
9
解决办法
16万
查看次数

MySQL SELECT LIKE或REGEXP匹配一条记录中的多个单词

这个领域table.name包含'Stylus Photo 2100'并具有以下查询

SELECT `name` FROM `table` WHERE `name` LIKE '%Stylus 2100%'
Run Code Online (Sandbox Code Playgroud)

我没有结果.当然,如果我搜索,我会的

SELECT `name` FROM `table` WHERE `name` LIKE '%Photo 2100%'
Run Code Online (Sandbox Code Playgroud)

如何通过搜索"Stylus 2100"来选择记录?

谢谢

regex mysql select sql-like

66
推荐指数
4
解决办法
17万
查看次数

Vim的正则表达式中的\&模式是什么?

我最近遇到了Vim regex builtins中的分支说明符.Vim的帮助部分\&包含:

A branch is one or more concats, separated by "\&".  It matches the last
concat, but only if all the preceding concats also match at the same
position.  Examples:
      "foobeep\&..." matches "foo" in "foobeep".
      ".*Peter\&.*Bob" matches in a line containing both "Peter" and "Bob"
Run Code Online (Sandbox Code Playgroud)

目前尚不清楚它是如何使用的以及它的用途.对它的作用以及如何使用它的一个很好的解释将是伟大的.

要清楚这不是&替换中使用的(替换为整个匹配),这是\&在模式中使用的.

用法示例:

/\c\v([^aeiou]&\a){4}
Run Code Online (Sandbox Code Playgroud)

用于搜索连续4个辅音(取自vim提示).

regex vim

11
推荐指数
1
解决办法
872
查看次数

使用正则表达式以任意顺序匹配多个单词

好吧,假设我想匹配一个句子中的 3 个单词...但我需要以任何顺序匹配它们,例如:

$sentences = Array(
   "one two three four five six seven eight nine ten",
   "ten nine eight seven six five four three two one",
   "one three five seven nine ten",
   "two four six eight ten",
   "two ten four six one",
);
Run Code Online (Sandbox Code Playgroud)

所以我需要匹配单词“二”,“四”和“十”,但按任何顺序,它们之间可以有也可以没有任何其他单词。我尝试

foreach($sentences AS $sentence) {
   $n++;
   if(preg_match("/(two)(.*)(four)(.*)(ten)/",$sentence)) {
       echo $n." matched\n";
   }
}
Run Code Online (Sandbox Code Playgroud)

但这只会匹配句子 1,我需要匹配句子 1、2、4 和 5。

我希望你能帮忙...问候!(抱歉我的英语)

php regex

6
推荐指数
1
解决办法
4796
查看次数

如何使用testthat以未知顺序测试多个警告?

我想测试一个函数在警告的顺序可以变化时会生成多个警告(4个或更多)。我最好的尝试是基于前瞻性RegExp匹配。简化为2条警告,我知道我的RegExp在单个字符串输出上工作,因为以下两个都是正确的:

grepl("(?s)(?=.*2)(?=.*1)", "* warn 1.\n* warn 2.", perl=TRUE)
grepl("(?s)(?=.*2)(?=.*1)", "* warn 2.\n* warn 1.", perl=TRUE)
Run Code Online (Sandbox Code Playgroud)

但是,使用以下命令测试多个警告时,此方法不起作用 testhat::expect_warning

# The function generating warnings:
foo <- function() { warning("warn 1."); warning("warn 2.") }
foo()
Warning messages:
1: In foo() : warn 1.
2: In foo() : warn 2.

# Testing it
expect_warning( foo(), "(?s)(?=.*1)(?=.*2)", perl=TRUE)

Error: foo() does not match '(?s)(?=.*1)(?=.*2)'. Actual values:
* warn 1.
* warn 2.
Run Code Online (Sandbox Code Playgroud)

我怀疑这是因为的内部expect_warning功能正在像针对每个警告分别测试给定的RegExp一样-为什么expect_warning( ... all=TRUE )参数可能有意义。

不幸的是,我不能将它与RegExp之类的一起使用"1 | 2";如果只发出一个警告,则成功。 …

regex unit-testing r testthat

6
推荐指数
2
解决办法
362
查看次数

正则表达式以任意顺序匹配多个单词

我正在编写一个 python 脚本,它将标记 Windows CIS 基准测试的输出。为了做到这一点,我将组策略设置中的值与正则表达式进行匹配,以查看它们是否满足基准的标准。

对于基准测试的某些方面,设置中需要显示用户列表,但该列表必须是排他的,并且指定的顺序不必一致。

例如,“调整进程的内存配额”应该是Administrators,LOCAL SERVICE,NETWORK SERVICE,但也可以表示为LOCAL SERVICE,NETWORK SERVICE, Administrators,但不能是Administrators,LOCAL SERVICE,NETWORK SERVICE,phil

我正在寻找一个正则表达式,它可以按照与此类似的任何顺序匹配这些所需的值,但仅在没有其他值存在时才匹配。

谢谢,菲尔

编辑:这与使用正则表达式匹配包含任意顺序的两个名称的字符串任意顺序的多个单词的正则表达式不同,因为这些不完全匹配单词。我希望仅以任何顺序匹配所需的名称。

第二次编辑:该脚本从 csv 文件加载一组规则,其中包含基准项目编号、描述、所需值和与组策略设置匹配的正则表达式。其背后的想法是,我们将能够创建一个包含任何基准测试规则的 csv,并且脚本不需要事先了解设置是否应该是数字、用户名列表、布尔值等。

规则从 csv 加载到列表(以下示例中的基准)中,策略设置从 tsv 加载到第二个列表(策略)中。这使我能够尽可能不依赖于正在使用的基准来检查值。

for row in benchmark:
    if re.match(row[4],policy[row[2]]):
        continue
    print('"{}","{}","{}","{}"'.format(row[0],row[1],policy[row[2]],row[3]))
Run Code Online (Sandbox Code Playgroud)

基准 csv 中的行示例:

"2.2.5","Ensure 'Adjust memory quotas for a process' is set to 'Administrators,LOCAL SERVICE,NETWORK SERVICE'","Adjust memory quotas for a process","Administrators, LOCAL SERVICE, NETWORK SERVICE","<insert regex here>"
Run Code Online (Sandbox Code Playgroud)

如果以下格式不满足基准要求,则最终输出将写入 csv 文件(或在此处以 csv 格式打印) …

python regex

6
推荐指数
1
解决办法
6941
查看次数

以任何顺序匹配同位素中的单词(使用输入值)

我正在使用 Isotope.js 和 vanilla javascript。

在我的项目中,我在每个项目中放置了div一个display:none隐藏关键字。例如,橙色项具有关键字“颜色”和“水果”。因此,如果有人在输入表单(橙色、颜色或水果)中输入这三个词中的任何一个,该项目将通过 Isotope 显示。

这是一个显示我的项目的 jsfiddle

我想要做的是,如果有人以项目将显示的任何顺序将所有三个单词输入到输入表单。现在,该项目仅在按顺序键入关键字时才会显示。例如,输入“水果颜色”将显示项目橙色,但“颜色水果”不会。

编辑: 这里的答案正是我想要实现的。我将它应用到我的项目的 jQuery 版本并且完美运行。但是,我在用香草 JS 重写它时遇到了麻烦。非常感谢任何帮助。

javascript input jquery-isotope

6
推荐指数
1
解决办法
155
查看次数

正则表达式强制特定的3个字符

我已经试过这段代码:

/[m,r,k]/
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我想检查字符串是否包含所有三个字符m,r,k。顺序并不重要。

javascript regex string-matching

2
推荐指数
1
解决办法
67
查看次数